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

AWS Step Function进入Wait状态5分钟后超时,原因何在?

AWS Step Functions Wait状态提前5分钟超时问题

问题描述

我有一个AWS Step Function,配置了Wait状态等待1小时(3600秒),但每次启动后,进入Wait状态仅5分钟就超时,从未执行到后续的Lambda函数。状态机定义如下:

{
  "Comment": "This state machine will fire off a reminder lambda for an outage status update after a delay",
  "StartAt": "Wait",
  "States": {
    "Wait": {
      "Type": "Wait",
      "Comment": "Wait for an hour",
      "Seconds": 3600,
      "Next": "Send Reminder"
    },
    "Send Reminder": {
      "Type": "Task",
      "Comment": "Send a reminder in Slack for a status update",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "Payload.$": "$",
        "FunctionName": "${FunctionArn}"
      },
      "End": true
    }
  }
}

我尝试添加"TimeoutSeconds": 7200到定义中,问题依旧。按官方文档,未设置超时的状态机默认1年才会自动超时,不清楚为何会提前终止。

排查结论及解决方法

  • 状态机类型错误:这是最可能的原因。如果你的状态机是Express类型,它的最大执行时长限制就是5分钟(300秒),无论你设置多长的Wait时间或全局超时,都会触发超时终止。Express状态机设计用于短周期工作流,长时间等待需要使用Standard类型状态机。
    • 解决:在AWS控制台将状态机转换为Standard类型,或重新创建为Standard类型(注意两种类型的计费模式差异)。
  • 执行角色权限缺失:检查状态机的执行角色是否拥有维持长时间执行的必要权限,比如states:UpdateExecution等。如果权限不足,Step Functions无法维持Wait状态,会提前终止。
    • 解决:为执行角色附加AmazonStepFunctionsFullAccess(测试环境),或根据最小权限原则配置所需权限。
  • 触发源超时限制:如果状态机通过API Gateway、Lambda同步调用等方式触发,触发源自身的超时设置可能导致整个执行提前终止。比如同步调用Step Functions的Lambda函数如果设置了5分钟超时,会间接导致状态机执行终止。
    • 解决:检查触发源的超时配置,确保其超时时间大于状态机的总执行时长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:42:47