【发布时间】:2023-03-03 03:42:02
【问题描述】:
我编写了一个宏(称为BucketChecker),它接受一个 s3 存储桶名称并检查它是否已经存在。
片段将相应地返回 true 或 false。
我想在Conditions 部分中使用此宏,如本文所述:https://cloudnineapps.com/blogs/cloud-computing/how-to-create-dynamic-condition-expressions-in-aws-cloudformation-using-macros/。
这个想法是在我的模板中使用这个作为条件:
Conditions:
CreateBucket:
Fn::Equals: ['false', 'Fn::Transform': {
Name: BucketChecker,
Parameters: {
Operation: 'bucketExists',
BucketName: 'my-bucket'
}}]
Resources:
MyBucket:
Type: "AWS::S3::Bucket"
Condition: CreateBucket # -> only create it if doesn't yet exist
Properties:
BucketName: 'my-bucket'
但是 cfn-linter 给了我错误:E8003 Fn::Equals element must be a supported function (Ref, Fn::FindInMap, Fn::Sub, Fn::Join, Fn::Select, Fn::Split)
我的主要问题是:使用 CloudFormation 甚至可以实现这一点吗?如果是,我的模板有什么问题? 链接的文章似乎完全一样,但我的不起作用。
【问题讨论】:
-
您是否尝试过部署它? cfn-linter 可能不正确。
-
感谢您的提示,@Marcin。不管 cfn-linter 唠叨我,它确实有效。如果有人遇到同样的问题,我会回答我自己的问题。
标签: amazon-web-services aws-lambda yaml amazon-cloudformation