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

CloudFormation配置S3后缀触发Lambda的EventRule不生效问题排查

问题根因汇总
  • EventPattern 后缀匹配语法错误
    你当前将后缀匹配规则序列化为JSON字符串放到key的取值数组中,EventBridge不会解析该字符串内的匹配逻辑,会直接把它当成普通字符串和S3事件里的object key做全等匹配,自然无法命中任何符合后缀要求的对象。
  • 大小写匹配不一致
    你配置的匹配后缀为小写.testsuffix,但测试上传的文件后缀为.testSuffix,EventBridge的suffix运算符匹配大小写敏感,无法命中。
  • 未配置CloudTrail采集S3对象级事件
    EventBridge默认无法获取S3的PutObject、CopyObject这类对象级操作事件,必须先创建CloudTrail跟踪,指定捕获目标存储桶的对象级写操作事件,相关事件才会被推送到EventBridge做规则匹配。
修正后的EventRule配置
EventRule:
  Type: AWS::Events::Rule
  Properties:
    Description: 'test s3 event'
    EventPattern:
      source:
        - 'aws.s3'
      detail:
        eventSource:
          - 's3.amazonaws.com'
        eventName:
          - 'CopyObject'
          - 'PutObject'
        requestParameters:
          bucketName:
            - 'test-bucket'
          key:
            suffix: '.testSuffix' # 修正语法,同时和测试文件后缀大小写保持一致
    State: 'ENABLED'
    Targets:
      - Arn: !GetAtt TestLambda.Arn
        Id: 'TestLambdaTargetId'
补充操作说明
  1. 创建CloudTrail跟踪,配置跟踪test-bucket的PutObject、CopyObject等写操作事件,日志可以投递到任意S3存储桶存储
  2. 上传后缀完全匹配.testSuffix的文件验证触发逻辑
  3. 若不需要走EventBridge链路,也可以直接配置S3存储桶的事件通知规则直接绑定Lambda,该方案无需配置CloudTrail和EventBridge,链路更简单。

你当前的Lambda调用权限配置没有问题,修正上述配置并完成CloudTrail配置后即可正常触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:57:03