我正在尝试编写一个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"
}]
}
}
}]
}
}
}
答案 0 :(得分:2)
我还没有找到使用CloudFormation管理现有资源的方法。此外,使用存储桶上的BucketName
属性会限制CloudFormation显着管理存储桶的能力。例如,它无法替换资源,或者在帐户的另一个堆栈中再次创建资源。我建议不要遗漏这个属性,让Cloudformation创建存储桶名称,并在同一堆栈中设置的via环境变量中引用存储桶的ARN。