现有存储桶的 Cloudformation 触发事件

Sam*_*ner 6 amazon-s3 aws-cloudformation aws-lambda

我正在尝试编写一个 cloudformation 模板,其中涉及向存储桶添加事件以触发 lambda 函数。

我知道我可以使用如下代码同时创建一个存储桶和一个事件,但我的存储桶已经存在,我不想要另一个,所以有没有办法为云形成中的现有存储桶创建一个事件?

"EncryptionServiceBucket" : {
  "Type" : "AWS::S3::Bucket",
  "Properties" : {
    "BucketName" : { "Fn::Sub" : "${User}-encryption-service" },
    "NotificationConfiguration" : {
      "LambdaConfigurations" : [{
        "Function" : { "Ref" : "LambdaDeploymentArn" },
        "Event" : "s3:ObjectCreated:*",
        "Filter" : {
          "S3Key" : {
            "Rules" : [{
              "Name" : "suffix",
              "Value" : "zip"
            }]
          }
        }
      }]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

kin*_*no1 3

我还没有找到使用 CloudFormation 管理现有资源的方法。此外,BucketName在存储桶上使用该属性会显着限制 CloudFormation 管理存储桶的能力。例如,它无法替换资源,或在您帐户的另一个堆栈中再次创建资源。我建议忽略此属性,让 Cloudformation 创建存储桶名称并通过同一堆栈中设置的环境变量引用存储桶的 ARN。