0

我有一个 CloudFormation 模板,我想在 AutoScale 结构中使用一个条件,但我遇到了错误。我想知道我是否遗漏了什么?

我的条件:

Conditions:
  CreateLBResources: !Equals 
    - !Ref LB
    - true

AutoScale 中的负载均衡器:

LoadBalancerNames:
   !If [CreateLBResources, !Ref LoadBalancer, !Ref "AWS::NoValue"]

错误:

属性 LoadBalancerNames 的值必须是字符串列表类型

我想做什么?

如果输入“true”,则添加负载均衡器的名称,如果输入“false”,则将其留空。

感谢您的帮助。

4

2 回答 2

0

我解决了我的问题。

LoadBalancerNames:
   - !If [CreateLBResources, !Ref LoadBalancer, !Ref "AWS::NoValue"]

我忘了添加-字符。

谢谢。

于 2020-09-19T14:33:00.570 回答
0

LoadBalancerNames你不需要任何!If条件。您可以简单地Condition在 ASG 块中使用。

  myASG:
    Condition: CreateLBResources
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties:
      LoadBalancerNames: [<LBName>]
      ...

根据条件CreateLBResources,它将完成工作(创建或不创建 ASG)。

于 2020-09-19T12:25:57.593 回答