Lon*_*Rob 4 airflow airflow-2.x
我以与这些 Airflow 文档PythonOperator非常相似的方式将一些运行时 DAG 参数/配置传递给 a :
def print_x(x):
print(f"x is {x}")
with DAG(
"print_x",
start_date=pendulum.datetime(2022, 6, 15, tz="UTC"),
schedule_interval=None,
catchup=False,
params={
"x": Param(42),
},
) as dag:
PythonOperator(
task_id="print_x",
op_kwargs={
"x": "{{ params.x }}",
},
python_callable=print_x,
)
Run Code Online (Sandbox Code Playgroud)
但是,当我手动触发 DAG 时,无论我在“触发 DAG”对话框中输入什么内容,我总是得到默认值 (42)。
这里出了什么问题?
注意:在我的特定情况下,我在 AWS Managed Workflows for Apache Airflow (MWAA) 上运行 Airflow 2.2.2,但我认为这不相关。
有一个稍微讨论过的参数,它控制在 DagRun 的任务中使用触发 DAG 时是否传递配置:
在Params 概念页面的底部,它写着(重点是我的):
触发 DAG 时更新参数的能力取决于标志 core.dag_run_conf_overrides_params。将此配置设置为 False 将有效地将默认参数转换为常量。
在 MWAA 上,这似乎是False默认设置。您可以通过“触发 DAG”页面底部收到的消息来查看这是否是问题所在:
由于
core.dag_run_conf_overrides_params设置为False,因此在此处传递任何配置都不会覆盖任务参数。
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |