【问题标题】:How to specify multiple resource conditions in Cloudformation template?Cloudformation模板中如何指定多个资源条件?
【发布时间】:2019-08-24 07:42:58
【问题描述】:

我有一个具有 2 个条件的 Cloudformation 模板

Conditions:
  ProdEnvironment:
    !Equals [ !Ref VPCStackNameParameter, 'ProductionVPC' ]
  CertExists:
    !Not [!Equals [!Ref SslCertificateArn, '']]

如何在要创建的资源中指定这两个条件?类似的东西

Resources:
  Alb:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Condition: ProdEnvironment !And CertExists <--- this gives error!

【问题讨论】:

  • 我认为这不可能。为什么不定义一个包含其他两个条件的新条件?
  • @kichik,我该怎么做,使用 !And 函数?所以“ProdAndCert:!并且,- 条件:ProdEnvironment,- 条件:CertExists”

标签: amazon-cloudformation aws-cli


【解决方案1】:

您可以创建一个同时满足这两个条件的条件。

Conditions:
  ProdEnvironment:
    !Equals [ !Ref VPCStackNameParameter, 'ProductionVPC' ]
  CertExists:
    !Not [!Equals [!Ref SslCertificateArn, '']]
  CertExistsAndProd: !And
    - !Equals [ !Ref VPCStackNameParameter, 'ProductionVPC' ]
    - !Not [!Equals [!Ref SslCertificateArn, '']]
Resources:
  Alb:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Condition: CertExistsAndProd

documentation 似乎建议您也可以在条件中引用条件。所以你也可以试试:

Conditions:
  ProdEnvironment:
    !Equals [ !Ref VPCStackNameParameter, 'ProductionVPC' ]
  CertExists:
    !Not [!Equals [!Ref SslCertificateArn, '']]
  CertExistsAndProd: !And
    - !Condition ProdEnvironment
    - !Condition CertExists
Resources:
  Alb:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Condition: CertExistsAndProd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 2021-04-22
    • 2020-10-17
    • 2017-07-15
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多