Ale*_*hov 10 orchestration airflow apache-airflow
是否可以通过UI将参数传递给Airflow的作业?
DFA中的AFAIK,'params'参数在python代码中定义,因此无法在运行时更改.
sha*_*359 13
改变 DAG 行为的两种方法:
UI - 从树视图手动触发
UI - 通过浏览 > DAG 运行 > 创建新记录创建新的 DAG 运行

或来自
命令行界面
airflow trigger_dag 'MY_DAG' -r 'test-run-1' --conf '{"exec_date":"2021-09-14"}'
Run Code Online (Sandbox Code Playgroud)
在 DAG 中,可以使用 jinja 模板或在运算符可调用函数上下文参数中访问此 JSON。
def do_some_task(**context):
print(context['dag_run'].conf['exec_date'])
task1 = PythonOperator(
task_id='task1_id',
provide_context=True,
python_callable=do_some_task,
dag=dag,
)
#access in templates
task2 = BashOperator(
task_id="task2_id",
bash_command="{{ dag_run.conf['exec_date'] }}",
dag=dag,
)
Run Code Online (Sandbox Code Playgroud)
请注意,JSON conf 在计划运行期间不会出现。JSON conf 的最佳用例是覆盖默认的 DAG 行为。因此,在 DAG 代码中设置有意义的默认值,以便在计划运行期间不使用 JSON conf。
根据您尝试的操作,您可能可以利用Airflow Variables.可以在"管理"选项卡下的UI中定义或编辑这些内容.然后,您的DAG代码可以读取变量的值并将值传递给它创建的DAG.
但请注意,尽管变量允许您从代码中解除值,但DAG的所有运行都将读取变量的相同值.如果你想让运行传递不同的值,你最好的选择可能是使用气流模板宏并用run_id宏或类似的方法区分宏
| 归档时间: |
|
| 查看次数: |
4037 次 |
| 最近记录: |