问题描述
我有一个CloudFormation模板,我想在AutoScale结构中使用一个条件,但是出现错误。我想知道我是否想念什么?
我的状况:
Conditions:
CreateLBResources: !Equals
- !Ref LB
- true
AutoScale中的负载均衡器:
LoadBalancerNames:
!If [CreateLBResources,!Ref LoadBalancer,!Ref "AWS::Novalue"]
错误:
属性LoadBalancerNames的值必须为字符串列表类型
我想做什么?
如果输入“ true”,请添加负载均衡器的名称,如果输入“ false”,则将其保留为空白。
感谢帮助。
解决方法
在LoadBalancerNames
中,您不需要任何!If
条件。您只需在ASG块中使用Condition
。
myASG:
Condition: CreateLBResources
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
LoadBalancerNames: [<LBName>]
...
根据条件CreateLBResources
,它将完成工作(创建或不创建ASG)。
我解决了我的问题。
LoadBalancerNames:
- !If [CreateLBResources,!Ref LoadBalancer,!Ref "AWS::NoValue"]
我忘记添加-字符。
谢谢。