Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

238
Views
Ejecutar trabajo en Airflow basado en Webrequest

Quería saber si las tareas de flujo de aire se pueden ejecutar al recibir una solicitud a través de HTTP. No estoy interesado en la parte de programación de Airflow. Solo quiero usarlo como sustituto del apio.

Entonces, una operación de ejemplo sería algo como esto.

  1. El usuario envía un formulario solicitando algún informe.
  2. Backend recibe la solicitud y envía al usuario una notificación de que se ha recibido la solicitud.
  3. Luego, el backend programa un trabajo usando Airflow para que se ejecute de inmediato.
  4. Airflow luego ejecuta una serie de tareas asociadas con un DAG. Por ejemplo, primero extraiga datos de corrimiento al rojo, extraiga datos de MySQL, realice algunas operaciones en los dos conjuntos de resultados, combínelos y luego cargue los resultados en Amazon S3, envíe un correo electrónico.

De todo lo que leí en línea, puede ejecutar trabajos de flujo de aire ejecutando airflow ... en la línea de comando. Me preguntaba si hay una API de Python que pueda ejecutar lo mismo.

Gracias.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

El complemento API REST de Airflow lo ayudaría aquí. Una vez que haya seguido las instrucciones para instalar el complemento, solo tendrá que presionar la siguiente URL: http://{HOST}:{PORT}/admin/rest_api/api/v1.0/trigger_dag?dag_id={dag_id}&run_id={run_id}&conf={url_encoded_json_parameters} , reemplazando dag_id con la identificación de su dag, o bien omitiendo run_id o especificando una identificación única, y pasando un json codificado en url para conf (con cualquiera de los parámetros que necesita en el dag desencadenado).

Aquí hay una función JavaScript de ejemplo que usa jQuery para llamar a la API de Airflow:

 function triggerDag(dagId, dagParameters){ var urlEncodedParameters = encodeURIComponent(dagParameters); var dagRunUrl = "http://airflow:8080/admin/rest_api/api/v1.0/trigger_dag?dag_id="+dagId+"&conf="+urlEncodedParameters; $.ajax({ url: dagRunUrl, dataType: "json", success: function(msg) { console.log('Successfully started the dag'); }, error: function(e){ console.log('Failed to start the dag'); } }); }
over 4 years ago · Santiago Trujillo Report

0

Una nueva opción en el flujo de aire es el extremo de la API experimental , pero incorporado, en las compilaciones más recientes de 1.7 y 1.8. Esto le permite ejecutar un servicio REST en su servidor de flujo de aire para escuchar un puerto y aceptar trabajos cli.

Yo solo tengo una experiencia limitada, pero he realizado pruebas con éxito. Según los documentos:

/api/experimental/dags/<DAG_ID>/dag_runs crea un dag_run para un ID de dag determinado (POST).

Eso programará una ejecución inmediata de cualquier dag que desee ejecutar. Sin embargo, todavía usa el programador, esperando un latido para ver que dag se está ejecutando y pasar tareas al trabajador. Sin embargo, este es exactamente el mismo comportamiento que la CLI, por lo que sigo creyendo que se ajusta a su caso de uso.

La documentación sobre cómo configurarlo está disponible aquí: https://airflow.apache.org/api.html

También hay algunos clientes de ejemplo simples en github, en airflow/api/clients

over 4 years ago · Santiago Trujillo Report

0

Debería mirar Airflow HTTP Sensor para sus necesidades. Puedes usar esto para activar un dag.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!