我正在CloudFormation模板中使用Load Balancer创建并附加EC2实例。 这里是Load Balancer资源中的实例。
"Instances" : [
"Fn::If": ["AttachLoadBalancerToServer1",
{
"Fn::GetAtt": [ "ServerStack1", "Outputs.Server1" ],
},
{
"Fn::If": ["AttachLoadBalancerToServer2",
{
"Fn::GetAtt": [ "ServerStack2", "Outputs.Server1" ],
},""
]
},""
]
],
我要在其中使用if if else模式:
if(AttachLoadBalancerToServer1){
"Instances" = "Fn::GetAtt": [ "ServerStack1", "Outputs.Server1" ],
}
else if(AttachLoadBalancerToServer2){
"Instances" = "Fn::GetAtt": [ "ServerStack2", "Outputs.Server1" ],
}
else{
"Instances" = "",
}
任何机构都可以帮助我在此模板中编写IF ELSEIF结构吗?我能够添加一个条件,但找不到在一个条件内如何使用第二个条件。
谢谢
答案 0 :(得分:7)
我通过在AWS CloudFormaiton模板中添加以下结构来实现嵌套IF:
"Instances" : [
"Fn::If": ["AttachLoadBalancerToServer1",
{
"Fn::GetAtt": [ "ServerStack1", "Outputs.Server1" ],
},
{
"Fn::If": ["AttachLoadBalancerToServer2",
{
"Fn::GetAtt": [ "ServerStack2", "Outputs.Server1" ],
},{ "Ref" : "AWS::NoValue"}
]
}
]
],
这对我来说很好。我发布答案是因为,如果将来有人遇到同样的问题,我的答案可能会对他有所帮助。