题外话(可以直接跳过进入正题):
最近需要使用airflow去调度任务,平常使用airflow都是调度的定时任务,这次不需要定时任务,只需要条件满足时主动触发airflow执行任务调度即可,同时将任务必要的外界参数传给DAG。查了好多资料发现都没有介绍如何将参数传给DAG的,于是就去看airflow文档,找到了使用命令行可以将参数传给DAG。但这种方式不适合我的任务需求,我需要调用airflow的API去触发airflow执行,可是官方文档中这块介绍的很少很少。也请教了一些人,得到的结果是airflow可能不支持自定义的参数传入。那怎么办呢?难道只能改源码?不科学呀,命令行支持,API怎么会不支持呢?于是本着不行就改源码的想法查看,一路查下去最后发现API和命令行调用的是同一个方法(trigger_dag),既然是同一个方法,肯定支持啊,于是有重新看了一下文档和源码,终于找到了二者之间的联系,哈哈哈,搞定~~
目录
1、通过API与AirFlow交互
AirFlow提供了两种API交互方式:
(1) GET方法获取指定<DAG_ID>下的指定<TASK_ID>信息
http://<WEBSERVER>:<PORT>/api/experimental/dags/<DAG_ID>/tasks/<TASK_ID> #returns info for a task (GE