为什么不在 CloudFormation Stack 中创建此安全组?

Why this Security Group is not being created in CloudFormation Stack?

我正在尝试创建一个安全组并根据 Fn::If 内在函数命名它。

Parameters:
  Environment:
    Type: String
    Description: Select Environment, Default is DEMO
    Default: DEMO
    AllowedValues: [ PROD, DEMO, QA, PERF, STAGING, INTEGRATION ]
Conditions:
  SGEnvironment: !Equals [!Ref Environment, PROD]

Resources:
  SG:
    Type: AWS::EC2::SecurityGroup
    Condition: SGEnvironment
    Properties:
      GroupName: !If [ SGEnvironment,"PROD-SG","NON-PROD-SG"]

当条件为真时创建安全组,但当条件为假时不创建。

只要选择 PROD 以外的环境参数,就不会创建安全组。

如果要一直创建SG,请移除Condition: SGEnvironment。使用 Condition: SGEnvironment,行为与您提到的相同。

  1. SGEnvironment == PROD --> 创建 SG
  2. SGEnvironment != PROD --> 不创建 SG

更多信息请参考here