我想知道是否可以在通过 HTTP 收到请求后执行气流任务。我对 Airflow 的调度部分不感兴趣。我只是想用它来代替芹菜。
所以一个示例操作是这样的。
- 用户提交一个表格请求一些报告。
- 后端接收请求并向用户发送请求已收到的通知。
- 然后后端使用 Airflow 安排一个作业立即运行。
- 然后 Airflow 执行一系列与 DAG 相关的任务。比如先从redshift拉取数据,再从mysql拉取数据,对两个结果集做一些操作,合并,然后将结果上传到Amazon S3,发邮件。
无论我在网上阅读什么,您都可以通过在命令行上执行 airflow ...
来运行气流作业。我想知道是否有一个 python api 可以执行同样的事情。
谢谢。
原文由 Pravin Umamaheswaran 发布,翻译遵循 CC BY-SA 4.0 许可协议
Airflow REST API 插件 会在这里帮助您。按照说明安装插件后,您只需点击以下网址:
http://{HOST}:{PORT}/admin/rest_api/api/v1.0/trigger_dag?dag_id={dag_id}&run_id={run_id}&conf={url_encoded_json_parameters}
,将 dag_id 替换为您的 dag 的 id,省略 run_id 或指定唯一的 id,并传递 url用于 conf 的编码 json(在触发的 dag 中包含您需要的任何参数)。下面是一个使用 jQuery 调用 Airflow api 的 JavaScript 函数示例: