【问题标题】:Use macro inside CloudFormation Conditions在 CloudFormation 条件中使用宏
【发布时间】: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 甚至可以实现这一点吗?如果是,我的模板有什么问题? 链接的文章似乎完全一样,但我的不起作用。

【问题讨论】:

标签: amazon-web-services aws-lambda yaml amazon-cloudformation


【解决方案1】:

基于 cmets。

cfn-linter错误地Fn::Transform分类为格式错误。

部署堆栈确认Fn::Transform没有没有问题

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 2021-12-16
    • 1970-01-01
    • 2020-06-17
    • 2016-04-09
    • 2020-03-30
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多