You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow手动触发DAG时传入params参数未生效始终返回默认值

问题根因

该问题由Airflow 2.2.2版本的原生机制导致,与MWAA托管环境无关:

  • Airflow直到2.3.0版本才正式支持「手动触发DAG时传入的运行配置自动覆盖DAG定义中Param默认值」的特性,2.2.2版本无此逻辑。
  • 在2.2.2版本中,DAG初始化时定义的params={"x": Param(42)}属于静态配置,模板渲染{{ params.x }}时只会读取这个静态默认值,不会主动拉取手动触发时传入的动态参数。
  • 2.2.2版本下手动触发传入的自定义参数,实际存储在dag_run.conf对象中,不会自动合并到params字典内。
修复方案

针对2.2.2版本,只需要调整模板取值逻辑,优先从运行时配置读取参数,不存在时回退到默认值即可,修改后的任务代码如下:

PythonOperator(
    task_id="print_x",
    op_kwargs={
        "x": "{{ dag_run.conf.get('x', params.x) }}",
    },
    python_callable=print_x,
)

补充:如果后续升级到Airflow 2.3及以上版本,你最初编写的{{ params.x }}写法就可以正常读取触发时传入的覆盖值,无需额外调整取值路径。

内容的提问来源于stack exchange,提问作者LondonRob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 01:01:29