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

Prefect 2.0:如何仅通过curl触发Flow运行?

问题描述
  • 已编写简单Prefect Flow,启动Orion和Agent后可通过Web UI触发运行
  • 尝试用curl触发Flow,已知Flow ID为7ca8a456-94d7-4aa1-80b9-64894fdca93b,需传入参数{'msg':'Hello world'}
  • 执行curl命令后收到307临时重定向响应,需正确触发方式
我的Flow代码
from prefect import flow
import datetime


@flow
def firstflow(inreq):
  retval={}
  retval['type']=str(type(retval))
  retval['datetime']=str(datetime.datetime.now())
  print(retval)

  return retval
尝试的curl命令
curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:4200/api/flow_runs \
-d '{"flow_id": "7ca8a456-94d7-4aa1-80b9-64894fdca93b", "parameters": {"msg": "Hello World"}, "tags": ["test"]}'
收到的响应
INFO:     127.0.0.1:53482 - "POST /flow_runs HTTP/1.1" 307 Temporary Redirect
解决方案
  1. 修正API路径:Prefect Orion的API必须指定版本前缀,正确路径为http://127.0.0.1:4200/api/0/flow_runs,缺失版本号会直接导致307重定向。
  2. 匹配Flow参数名:你的Flow定义的参数是inreq,但curl中传入的参数键是msg,二者必须一致。如果要传递msg参数,要么修改Flow的参数名为msg,要么在curl中将参数结构调整为"parameters": {"inreq": {"msg": "Hello World"}}(根据实际业务需求选择)。
  3. 可选:跟随重定向:如果暂时不想修改路径,可以在curl命令中添加-L参数让工具自动跟随重定向,但更推荐使用规范的带版本号API路径。

修正后的curl命令示例:

# 场景1:Flow参数已改为msg
curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:4200/api/0/flow_runs \
-d '{"flow_id": "7ca8a456-94d7-4aa1-80b9-64894fdca93b", "parameters": {"msg": "Hello World"}, "tags": ["test"]}'

# 场景2:保留Flow参数inreq,传入包含msg的字典
curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:4200/api/0/flow_runs \
-d '{"flow_id": "7ca8a456-94d7-4aa1-80b9-64894fdca93b", "parameters": {"inreq": {"msg": "Hello World"}}, "tags": ["test"]}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:06:45