【问题标题】:Cloudformation - Give a property to an S3 Bucket Resource if it meets a conditionCloudformation - 如果 S3 存储桶资源满足条件,则将其赋予属性
【发布时间】:2021-08-10 22:04:24
【问题描述】:

我基本上想检查环境是env还是dev,如果是则启用版本控制。如果没有,什么也不做。我使用了 AWS 文档的示例:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html

我的堆栈中出现错误

属性 VersioningConfiguration 的值必须是一个对象

我的条件 Cloudformation

Conditions:
    EnvCheck: !Or [!Equals [!Ref environment, test], !Equals [!Ref environment, dev]]

Bucket Cloudformation

Resources:
  SecurityS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
        ...
        VersioningConfiguration:
            !If
                - EnvCheck
                - 
                  Status: Enabled
                - !Ref "AWS::NoValue"

【问题讨论】:

    标签: amazon-web-services amazon-s3 conditional-statements amazon-cloudformation


    【解决方案1】:

    其实很简单。为存储桶指定VersioningConfiguration 属性后,您必须为其指定值,根据the documentation,它必须是具有Status 属性的对象。

    因此,要么您必须为 Status 传递另一个值(即 Suspended),要么您必须以不同的方式放置您的 !If 语句,以便 VersioningConfiguration 属性键在您不希望在存储桶上启用版本控制。

    【讨论】:

      猜你喜欢
      • 2020-07-22
      • 2021-08-01
      • 2012-09-15
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多