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

Serverless下EventBridge触发StepFunction无响应问题排查

问题排查与解决方案

以下是几个优先级从高到低的遗漏配置/验证点:

1. 确保EventBridge拥有触发Step Function的权限

用Serverless Framework给Step Function绑定EventBridge事件时,默认不会自动赋予EventBridge调用states:StartExecution的权限,需手动补充:

  • 在serverless.yml的provider.iamRoleStatements中添加权限策略:
provider:
  iamRoleStatements:
    - Effect: Allow
      Action:
        - states:StartExecution
      Resource:
        - "arn:aws:states:${self:provider.region}:${aws:accountId}:stateMachine:${self:service}-${self:provider.stage}-[你的状态机名称]"
      Principal:
        Service: events.amazonaws.com
  • 或直接在AWS控制台检查EventBridge规则的目标角色,确认该角色包含states:StartExecution权限。

2. 验证Step Function执行角色的信任策略

检查Step Function执行角色的信任策略,确认允许events.amazonaws.com作为调用主体:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "states.amazonaws.com",
          "events.amazonaws.com" // 必须包含这一行
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

3. 确认EventBridge规则的目标配置正确性

登录AWS控制台的EventBridge规则页面,查看对应规则的目标是否正确指向你的Step Function——部分情况下Serverless的变量解析可能导致目标ARN错误。

4. 验证S3事件前缀匹配逻辑

S3的prefix是前缀完全匹配,若上传文件路径为payloads/to_process/xxx.txt,配置prefix: 'payloads/to_process'依然会匹配;但如果文件路径不符合该前缀(比如直接放在payloads/下)则不会触发。可以用EventBridge的「测试事件」功能,模拟S3对象创建事件验证规则是否匹配。

5. 检查Serverless Framework版本兼容性

部分旧版本的Serverless Framework对Step Function的EventBridge事件支持存在缺陷,建议升级到最新稳定版后重新部署测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:35:24