我们有一个前端服务器直接使用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()
无法通过
答案 0 :(得分:0)
如果你使用trigger_dag_run(通过命令行或来自另一个dag)来触发dag,你可以将任何json作为有效负载传递。
另一种选择是将参数列表存储在文件中,并将该文件位置存储为变量。然后,DAG可以将此文件位置传递给python运算符,然后操作员可以处理读取该文件并从中解析参数。
如果这两个解决方案都不适用于您的用例,那么提供有关您的dag和参数类型的更多详细信息可能有所帮助。