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

如何实现AWS APIGATEWAY同步调用并等待Step Function执行完成?

解决步骤

要实现API Gateway同步等待Step Function执行完成再返回结果,需要按以下规则配置:

1. 先确认Step Function工作流类型

只有 Express类型的Step Function 支持同步调用,Standard类型工作流本身不提供同步执行能力,若你当前使用的是Standard流,需先切换为Express类型。

2. 替换API Gateway集成的Step Function API

你当前默认调用的是异步API StartExecution,该API只会触发工作流、立即返回执行ID,不会等待执行结果。需要将集成的API替换为同步执行API StartSyncExecution:

  • 进入API Gateway对应资源的集成配置页
  • 集成类型选择AWS服务,服务列表选Step Functions,HTTP方法选择POST,动作栏填写StartSyncExecution
  • 配置执行角色,该角色必须包含states:StartSyncExecution权限,且信任策略允许apigateway.amazonaws.com扮演该角色

3. 配置请求映射模板

在集成请求的「映射模板」板块添加application/json类型的模板,构造符合StartSyncExecution要求的请求参数,示例如下:

{
  "stateMachineArn": "替换为你的Step Function ARN",
  "input": "$util.escapeJavaScript($input.body)",
  "name": "$context.requestId"
}

可根据业务需求新增其他入参。

4. 配置响应映射模板

在集成响应的「映射模板」板块添加application/json类型的模板,提取工作流执行结果作为API返回值,示例如下:

#set($executionResult = $input.path('$'))
$executionResult.output

若需要返回执行状态、错误信息等元数据,可自行调整返回字段。

5. 注意超时限制

API Gateway的最长集成等待时间为29秒,若你的Step Function执行时长超过29秒,API Gateway会直接返回504超时错误。这种场景下建议改用异步回调模式,避免同步调用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:54:04