如何在Airflow中向Python程序提交参数?

时间:2017-07-14 20:02:21

标签: python airflow

我们有一个前端服务器直接使用dag API执行dags(DagBag()get_dag()然后dag_run()

Dags运行正常,问题是,我们找不到用特定参数执行此类dag的方法。

最接近的解决方案是使用使用set()get()方法的Variable API,但这些变量是全局的,并且在处理可能使用相同变量名的并发操作时可能会发生冲突。 / p>

我们怎么能运行dag并设置可用于执行的参数?我们主要使用PythonOperator。

编辑1: 我们的程序是一个Python Django前端服务器。所以,我们通过另一个Python程序与Airflow交谈。这意味着我们通过Python触发dag,因此,使用DagBag.get_dag()从气流服务中检索信息。 run_dag()无法通过

传递直接参数

1 个答案:

答案 0 :(得分:0)

如果你使用trigger_dag_run(通过命令行或来自另一个dag)来触发dag,你可以将任何json作为有效负载传递。

另一种选择是将参数列表存储在文件中,并将该文件位置存储为变量。然后,DAG可以将此文件位置传递给python运算符,然后操作员可以处理读取该文件并从中解析参数。

如果这两个解决方案都不适用于您的用例,那么提供有关您的dag和参数类型的更多详细信息可能有所帮助。