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

Lambda与AWS Step Functions集成的异步重试机制及优先级问题

Lambda与AWS Step Functions集成的异步重试机制及配置优先级

一、异步重试的运作逻辑

Lambda与Step Functions集成时的重试行为,核心取决于Step Functions调用Lambda的方式(同步/异步):

1. 同步调用(默认方式)

当Step Functions以同步模式调用Lambda时:

  • Lambda执行失败会直接将错误返回给Step Functions,不会触发Lambda自身的异步重试机制。
  • 此时所有重试逻辑由Step Functions控制:根据你在状态机任务的Retry配置,针对特定错误类型、错误码(如Lambda.ServiceException、自定义业务错误)执行重试,支持自定义重试次数、间隔、指数退避策略等。

2. 异步调用(配置InvocationType: Event)

当Step Functions通过设置InvocationType: Event异步调用Lambda时:

  • Lambda会立即返回202 Accepted响应给Step Functions,Step Functions会判定任务已提交成功,不会触发自身的重试逻辑。
  • 后续的重试完全由Lambda自身的异步重试机制接管:遵循你在Lambda函数配置中设置的重试次数(默认2次,最多可配置10次)、递增间隔规则,失败的请求最终可被转发到你配置的死信队列。

二、两者配置的优先级与交互

核心规则:调用方式决定重试主导方

  • 同步调用场景:Step Functions的重试配置优先级完全覆盖Lambda的异步重试配置。因为同步调用不会触发Lambda的异步重试流程,所有失败后的重试逻辑由状态机的Retry/Catch规则定义。
  • 异步调用场景:Lambda自身的异步重试配置完全主导,Step Functions无法干预。此时状态机仅负责提交请求,不关心后续执行结果,自然不会触发重试。

额外注意事项

  • 同步调用时,若Lambda抛出未处理异常,Step Functions会严格按照Retry规则判断是否重试;若配置了Catch分支,则会直接进入错误处理流程。
  • 异步调用时,Step Functions无法获取Lambda异步执行的最终结果,若需要追踪结果,需额外配置回调机制(如Lambda执行完成后调用Step Functions的回调API)。
  • 不要在同步调用场景下依赖Lambda的异步重试配置,该配置不会生效,属于无效配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:02:45