Cloudform 资源的条件

Cloudform 资源的条件

事情是这样的:

我使用 ElasticBeanstalk 为 AWS Cloudformation 设置了以下资源创建,它会创建额外的 internal_loadbalancer:

Resources:
IntLB: 
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
        ConnectionDrainingPolicy: 
            Enabled: true 
            Timeout: 20
        CrossZone: true
        HealthCheck:
            HealthyThreshold: 3
            Interval: 10
            Target: "TCP"
            Timeout: 5
            UnhealthyThreshold: 5
        Listeners: 
            - InstancePort: 443
              LoadBalancerPort: 443
              Protocol: HTTPS
              SSLCertificateId: arn:aws:acm:
              InstanceProtocol: HTTP
        Scheme: internal
        SecurityGroups: 
            - { "Ref" : "AWSEBLoadBalancerSecurityGroup" }
        Subnets:
            - "subnet-1"
            - "subnet-2"
            - "subnet-3"
            - "subnet-4"
            - "subnet-5"
            - "subnet-6"

AWSEBAutoScalingGroup:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties: 
        LoadBalancerNames:
            - { "Ref" : "AWSEBLoadBalancer" }
            - { "Ref" : "IntLB" }

我想要做的是写一个条件,如果 environment_ID = XYZ,则应用资源的创建,如果不是,则忽略它。

我正在寻找 AWS 文档和论坛,但不确定什么是正确的方法。

有任何想法吗 ?

谢谢!

答案1

如果你创建一个状况并将其应用于您的资源?

Conditions: 
     CreateInternalELB: !Equals [ !Ref AWSEBEnvironmentId, XYZ ]
Resources:
    IntLB: 
        Type: AWS::ElasticLoadBalancing::LoadBalancer
        Condition: CreateInternalELB
        Properties:
            [...]

更改XYZ为您的环境 ID。

我刚刚在手机上写了这篇文章,所以如有错别字,请谅解。我也不确定是否可以在 EB 结构中包含此类条件。

相关内容