MWAA Local(2_10_3)无“Trigger DAG w/ config”按钮及配置传递问题
MWAA Local 2.10.3 无“Trigger DAG w/ config”按钮问题解答
1. 是否需要修改相关配置?
需要调整Airflow核心配置来启用该功能。找到容器内的airflow.cfg文件(默认路径/usr/local/airflow/airflow.cfg),修改以下参数:
- 将
webserver.expose_config设置为True,确保Web UI能读取并展示配置相关功能 - 确认
core.dag_run_conf_overrides_params为True,允许通过配置覆盖DAG运行参数
修改完成后重启MWAA Local容器,配置即可生效。
2. 如何传递输入配置?
配置生效后,点击DAG卡片上的“Trigger DAG w/ config”按钮,在弹出的文本框中输入JSON格式的配置内容,示例:
{"order_id": "ORD-12345", "process_date": "2024-05-20"}
在DAG任务中,可通过上下文变量dag_run.conf获取这些参数,示例代码:
def process_order(**context): run_config = context["dag_run"].conf order_id = run_config.get("order_id") process_date = run_config.get("process_date") # 业务逻辑处理
3. 基于官方容器搭建的配置修改建议
官方MWAA Local Runner容器默认配置会隐藏该按钮,你可以通过两种方式修改配置:
- 进入容器内部直接编辑
airflow.cfg,修改后重启容器 - 本地创建自定义
airflow.cfg文件,启动容器时通过挂载参数覆盖默认配置,示例启动命令片段:
这种方式可避免容器重启后配置丢失。docker run -v ./your-local-airflow.cfg:/usr/local/airflow/airflow.cfg ...
4. 其他传递输入配置的方式
除了Web UI按钮,还有两种常用的动态传参方式:
- Airflow CLI命令:进入容器执行触发命令,通过
-c参数传递JSON配置:airflow dags trigger -c '{"order_id": "ORD-12345"}' your_dag_id - Airflow REST API:通过POST请求触发DAG,在请求体中携带
conf参数:curl -X POST "http://localhost:8080/api/v1/dags/your_dag_id/dagRuns" \ -H "Content-Type: application/json" \ -d '{"conf": {"order_id": "ORD-12345", "process_date": "2024-05-20"}}'
内容的提问来源于stack exchange,提问作者user3858193
相关产品推荐
相关产品推荐

