如何在Postman中调用Airflow接口触发DAG并指定run_id参数
Airflow REST API 触发DAG时run_id的正确指定方法
先确认你使用的请求方式
你当前填写的路径http://localhost:8080/api/v1/dags/a_pipline/dagRuns/run_id里的run_id是路径占位符,对应两种不同的调用逻辑:
- 如果你用POST请求触发DAG,不需要在路径里加run_id,正确请求路径为
http://localhost:8080/api/v1/dags/a_pipline/dagRuns,run_id放在请求体中传入即可,这是最常用的触发方式 - 如果你用PUT请求指定run_id创建DAG运行实例,才需要把你要设置的run_id直接替换路径中的
run_id占位符,比如你指定run_id为postman_run_20240520_1600,则请求路径为http://localhost:8080/api/v1/dags/a_pipline/dagRuns/postman_run_20240520_1600
run_id的必填规则
指定run_id时需要符合Airflow的要求:
- 同一个DAG下的run_id必须唯一,重复传入会返回409冲突错误
- 长度不能超过250个字符
- 建议仅使用字母、数字、下划线、横杠、小数点,避免使用空格、中文、特殊符号,防止编码错误导致请求失败
常用的run_id命名规范
你可以根据业务场景自定义run_id,常见的命名方式有:
- 手动触发场景:带上触发渠道+时间戳,比如
manual_postman_20240520160000、test_run_1716192000(1716192000为10位时间戳) - 业务触发场景:带上业务标识,比如
order_data_sync_20240520_001 - 如果你不想手动指定,也可以不传run_id参数,Airflow会自动生成格式为
manual__YYYY-MM-DDTHH:MM:SS的唯一run_id
Postman 触发配置示例(POST方式)
- 请求方法选择
POST,请求地址填http://localhost:8080/api/v1/dags/a_pipline/dagRuns - Authorization页签选择Basic Auth,填写你的Airflow账号密码(默认账号密码均为airflow,自定义过的话替换成自己的即可)
- Headers页签添加配置:
Content-Type: application/json - Body页签选择
raw,格式选择JSON,参考请求体如下:
{ "run_id": "postman_manual_run_20240520_1600", "conf": {}, "note": "Postman手动触发测试" }
conf字段为你要传递给DAG的动态参数,没有参数的话保留空对象即可,note为可选的运行备注字段,可以省略
内容的提问来源于stack exchange,提问作者Muhammad Saad
相关产品推荐
相关产品推荐

