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

AWS SAM中EventBridge未触发Lambda函数问题求助

问题分析和修复方案

主要问题1:EventBridge规则的匹配模式写错了

你的SAM模板里的规则模式有两处错误,导致S3上传事件根本匹配不上:

  • 桶名字段路径错了:S3发给EventBridge的事件里,桶名存在detail.bucket.name里,不是你写的detail.requestParameters.bucketName——这个路径是CloudTrail事件里的格式,和S3直接发EventBridge的事件格式不一样。
  • 事件名称配置混乱:你在SAM里写的是PutObject这类具体操作,但实际生成的规则变成了Object Created。其实Object Created是事件的大类(对应detail-type字段),而PutObject是具体操作(对应detail.eventName字段),你需要把这两个字段区分开配置。

主要问题2:目标S3桶没开EventBridge事件通知

默认情况下S3不会主动把事件发给EventBridge,必须给桶开启这个功能才行,要么手动在控制台开,要么在SAM里配置。

改好后的SAM代码示例

TimeFunction:
  Type: AWS::Serverless::Function
  Properties:
    FunctionName: cc-dummy-eventbridge-lambda
    Handler: lambda_function.lambda_handler
    Runtime: python3.9
    CodeUri: ./TimeZone
    Role: !FindInMap
      - StagesMap
      - Ref: Environments
      - RoleEnv
    Events: 
      GetEvent:
        Type: EventBridgeRule
        Properties:
          Pattern:
            source:
              - "aws.s3"
            detail-type:
              - "Object Created"  # 匹配事件的大类
            detail:
              eventName:
                - "PutObject"
                - "PutObjectAcl"
                - "CopyObject"
              bucket:
                name:
                  - !FindInMap [StagesMap, !Ref Environments, SOURCEBUCKET] 

# 新增:给目标桶开启EventBridge事件通知
MyS3Bucket:
  Type: AWS::S3::Bucket
  Properties:
    BucketName: !FindInMap [StagesMap, !Ref Environments, SOURCEBUCKET]
    NotificationConfiguration:
      EventBridgeConfiguration:
        EventBridgeEnabled: true

额外要注意的点

  • 确保Lambda的IAM角色有events:InvokeFunction权限,让EventBridge能调用它。如果是SAM自动生成的角色一般没问题,但要是你用了自定义角色,得手动加这个权限。
  • 要是桶是已经存在的,没法通过SAM配置的话,就用CLI命令开启:
aws s3api put-bucket-notification-configuration --bucket dummy-dev --notification-configuration '{"EventBridgeConfiguration": {"EventBridgeEnabled": true}}'
  • 可以去EventBridge的事件总线里看一下实际的S3事件结构,确认字段路径是不是对的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:05:16