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

如何让AWS API Gateway的POST请求等待Step Function返回结果?

如何将Step Function处理结果返回给API Gateway?

完全可行,你当前使用的StartExecution是异步触发方式,所以API网关会直接返回执行ID,不会等待Step Function完成。要实现将处理结果返回给API网关,分两种场景处理:

场景一:短耗时任务(≤30秒)

直接改用Step Functions的StartSyncExecution操作替代StartExecution:

  • 这个操作会阻塞API网关的请求,直到Step Function执行完成(成功或失败),执行结束后会直接把结果返回给API网关,再由网关转发给请求客户端。
  • 注意:API网关的最大超时限制是30秒,所以你的Step Function处理逻辑必须在这个时间内完成,否则会触发超时错误。

场景二:长耗时任务(>30秒)

如果Step Function执行时间超过30秒,需要用「异步触发+回调」的方式:

  1. API网关调用StartExecution触发Step Function,立即返回包含执行ID的响应给客户端,客户端可以通过轮询或等待回调获取结果。
  2. 在Step Function的最后一步,添加调用API网关回调端点的步骤(可以用Lambda实现,或直接用Step Functions的API网关集成),把DynamoDB交互后的处理结果发送到该端点。
  3. API网关的回调端点收到结果后,再将结果返回给客户端(如果是WebSocket API可直接推送,REST API则需要客户端轮询查询结果,或使用Server-Sent Events)。

额外提示

  • 使用StartSyncExecution时,要完善Step Function的错误处理逻辑,确保执行失败时能返回明确的错误信息,API网关可捕获这些信息并返回给客户端。
  • 异步方案中,建议用DynamoDB临时存储执行ID与客户端请求的关联信息,方便回调时匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:25:55