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

CloudFormation中如何为S3桶多个事件配置同一个Lambda触发器

问题解答

你第一种写法的思路是正确的,CloudFormation的AWS::S3::Bucket资源LambdaConfigurations配置项支持用复数的Events字段传入事件数组,如果多个事件的触发目标Lambda、S3键过滤规则完全一致,不需要重复编写完整配置块。

正确配置示例(同Lambda同规则多事件)

直接在同一条LambdaConfigurations配置下,把你需要的所有事件放到Events数组中,同时保留原有的Function、Filter配置即可:

MyBucket:
  Condition: CreateNewBucket
  Type: AWS::S3::Bucket
  # ...其他Bucket配置...
  NotificationConfiguration:
    LambdaConfigurations:
      - Events: 
          - 's3:ObjectCreated:Put'
          - 's3:ObjectCreated:Post'
        Function: !GetAtt YourLambdaFunction.Arn # 注意这里要填Lambda的ARN,不要直接写名称
        Filter:
          S3Key:
            Rules:
              - Name: prefix
                Value: 'someValue'

需要分开写配置的场景

如果不同事件对应的触发Lambda不同,或者S3键的前缀/后缀过滤规则不同,才需要拆分多个配置项,每个配置项要写全所有必填字段:

LambdaConfigurations:
  # 第一个事件配置,对应前缀A
  - Event: 's3:ObjectCreated:Put'
    Function: !GetAtt YourLambdaFunction.Arn
    Filter:
      S3Key:
        Rules:
          - Name: prefix
            Value: 'prefixA/'
  # 第二个事件配置,对应前缀B
  - Event: 's3:ObjectCreated:Post'
    Function: !GetAtt YourLambdaFunction.Arn
    Filter:
      S3Key:
        Rules:
          - Name: prefix
            Value: 'prefixB/'

错误写法说明

  • 你列出的第二种写法(仅拆分Event字段、不补全Function、Filter)是无效的,每个LambdaConfigurations的列表项都必须包含完整的事件、目标函数、过滤规则(如果有)配置。
  • 注意不要用单数Event字段传数组,必须用复数Events字段才支持多事件配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:39:05