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

AWS SAM模板中如何为S3事件添加多个触发规则?

问题根因
  • S3事件通知的单条过滤规则组内,多个规则是逻辑与的关系,要求对象Key同时满足所有规则才会触发事件
  • S3限制单条规则组内同类型规则(prefix/suffix)只能出现一次,你在同一个Rules列表下写了两个prefix、两个suffix,既不符合业务逻辑(对象不可能同时属于两个前缀目录),也违反了S3的配置约束,所以触发重复值报错。
修复方案

把两个路径的触发需求拆分为两条独立的S3事件配置,两条事件是逻辑或的关系,任意一条匹配成功就会触发Lambda,符合你的业务需求。

修改后的SAM模板对应部分如下:

LambdaS3:  # Name change -change fun name
    Type: AWS::Serverless::Function
    Properties:
      Handler: lambda_function.lambda_handler
      Runtime: python3.7
      Timeout: 60
      FunctionName: !Sub "${Environment}somefun" 
      CodeUri: ./mysource/src
      Role: !GetAtt myiam.Arn
      Description: "Test"
      Environment:
        Variables:
          KINESIS_STREAM: !Sub "${Environment}_my_kinesis"
          ENVIRONMENT: !Sub "${Environment}"
         
      Events:
          FileUploadL1:
              Type: S3
              Properties:
                Bucket: !Ref MyBucket
                Events: s3:ObjectCreated:*
                Filter:
                  S3Key:
                    Rules:
                      - Name: prefix
                        Value: "L1/Test_1/INPUT/"
                      - Name: suffix
                        Value: ".json"
          FileUploadL2:
              Type: S3
              Properties:
                Bucket: !Ref MyBucket
                Events: s3:ObjectCreated:*
                Filter:
                  S3Key:
                    Rules:
                      - Name: prefix
                        Value: "L2/Test_2/INPUT/"
                      - Name: suffix
                        Value: ".json"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:18:01