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

Apache Airflow中通过webserver触发DAG时如何指定自定义run id

Airflow Web端触发DAG时自定义run_id的实现方法

Airflow默认的手动触发流程(点击DAG列表的播放按钮)会自动生成格式为manual__时间戳的run_id,2.6版本之前的原生触发弹窗没有暴露自定义run_id的输入入口,可通过以下两种方式实现自定义运行ID的需求:

方法1:构造带参数的触发链接(全版本通用,无额外改动)

Airflow Web端的触发逻辑支持通过URL参数传入触发配置,不需要逐次点击默认触发按钮,可直接按照固定格式拼接访问链接:

  • 基础链接格式:你的Airflow Web服务地址/home?dag_id=目标DAG的唯一标识&run_id=你需要自定义的运行ID
  • 可选追加参数:如果需要同步指定运行对应的执行时间,可在链接后追加&execution_date=指定的执行时间,时间格式与Airflow官方要求的格式保持一致即可。

举个实际的访问示例:
如果Airflow部署在http://airflow.internal.company.com,需要触发标识为user_retention_analysis的DAG,自定义run_id为manual_verify_20240520,直接在浏览器访问如下链接:
http://airflow.internal.company.com/home?dag_id=user_retention_analysis&run_id=manual_verify_20240520
页面加载完成后会自动弹出触发确认弹窗,确认后生成的DAG运行记录就会使用你指定的run_id,不会生成系统默认的manual__xxx格式ID。

方法2:改造原生触发弹窗(优化交互体验,适合高频自定义场景)

如果觉得每次手动拼接链接的操作繁琐,可以通过Airflow自定义插件能力改造原生触发弹窗,实现和命令行trigger_dag命令一致的交互体验:

  • 在Airflow插件目录下编写前端自定义逻辑,在原生Trigger DAG弹窗的表单区域,新增一个命名为run_id的文本输入字段
  • 修改触发请求的提交逻辑,将表单中填写的run_id值作为顶层请求参数传递,不要放在业务conf参数块里
  • 重启Webserver服务后,点击DAG列表的原生播放按钮时,就能直接在弹窗里填写自定义run_id完成触发。

注意事项:

  • 自定义run_id命名不能包含连续斜杠//,也不能与同DAG下已存在的运行ID重名,否则会触发运行冲突报错
  • 不要尝试把run_id放在触发的conf业务参数块里传递,这部分参数只会作为DAG的业务运行变量传递给任务节点,不会被系统识别为DAG run的标识ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 00:45:04