我正在创建一个python脚本,以从模板生成DAG(使用DAG规范生成新的python文件)。一切正常,除了我需要将DAG生成为非暂停状态。
我已经搜索并尝试在脚本中运行shell命令,如下所示:
bash_command1 = 'airflow list_dags'
bash_command2 = 'airflow trigger_dag ' + str(DAG_ID)
bash_command3 = 'airflow list_tasks ' + str(DAG_ID)
bash_command4 = 'airflow unpause '+ str(DAG_ID)
subprocess.call(bash_command1.split())
subprocess.call(bash_command2.split())
subprocess.call(bash_command3.split())
subprocess.call(bash_command4.split())
但是,每当我创建一个新的DAG时,它在Web UI中就会显示为已暂停。
通过我的研究,命令airflow unpause <dag_id>
应该可以解决问题,但是当脚本执行它时,我得到了错误:
Traceback (most recent call last):
File "/home/cubo/anaconda2/bin/airflow", line 28, in <module>
args.func(args)
File "/home/cubo/anaconda2/lib/python2.7/site-packages/airflow/bin/cli.py", line 303, in unpause
set_is_paused(False, args, dag)
File "/home/cubo/anaconda2/lib/python2.7/site- packages/airflow/bin/cli.py", line 312, in set_is_paused
dm.is_paused = is_paused
AttributeError: 'NoneType' object has no attribute 'is_paused'
但是当我在终端中执行相同的airflow unpause <dag_id>
命令时,它可以正常工作,并显示:
Dag: <DAG: DAG_ID>, paused: False
任何帮助将不胜感激。
答案 0 :(得分:1)
气流(1.8及更高版本)pauses new dags by default。如果希望在创建时取消所有DAG的状态,则可以覆盖Airflow配置,以保留创建时取消暂停的先前行为。
Here's the link引导您完成设置配置选项。您想要设置一个核心配置设置:dags_are_paused_at_creation设置为False。
我们在团队中使用环境变量方法。