Amazon cloudformation AWS CloudFormation-AWS::ElasticLoadBalancingV2::负载平衡器-安全组

Amazon cloudformation AWS CloudFormation-AWS::ElasticLoadBalancingV2::负载平衡器-安全组,amazon-cloudformation,Amazon Cloudformation,CFN模板中是否有可能根据参数向ALB添加一些特定的安全组 我遇到了两个安全小组加入ALB的情况: ALB 类型:AWS::ElasticLoadBalancingV2::负载平衡器 特性: ... 安全组: - !参考“SecurityGroup1” - !参考“SecurityGroup2” 现在有一个SecurityGroup3,只有在某个参数具有特定值时,我才会最终添加它。假设参数add_sg3等于yes,则第三个SG被添加到ALB。我总是在类似的情况下使用“!If,但有2个以上的s

CFN模板中是否有可能根据参数向ALB添加一些特定的安全组

我遇到了两个安全小组加入ALB的情况:


ALB
类型:AWS::ElasticLoadBalancingV2::负载平衡器
特性:
...
安全组:
- !参考“SecurityGroup1”
- !参考“SecurityGroup2”


现在有一个
SecurityGroup3
,只有在某个参数具有特定值时,我才会最终添加它。假设参数
add_sg3
等于
yes
,则第三个SG被添加到ALB。我总是在类似的情况下使用
“!If
,但有2个以上的sg。欢迎提供任何建议。谢谢!

您可以使用a和伪参数来实现这一点。下面是一个完整的示例:

参数:
环境:
类型:字符串
默认值:dev
允许值:[“开发”、“生产”]
VpcId:
类型:“AWS::EC2::VPC::Id”
子网1:
类型:“AWS::EC2::子网::Id”
子网2:
类型:“AWS::EC2::子网::Id”
条件:
MyTest:!Equals[“dev”,!Ref-Environment]
资源:
ALB:
类型:“AWS::ElasticLoadBalancingV2::LoadBalancer”
特性:
安全组:
-!Ref SecurityGroup1
-!If[MyTest,!Ref SecurityGroup2,!Ref'AWS::NoValue']
子网:
-!Ref Subnet1
-!参考子网2
安全组1:
类型:“AWS::EC2::SecurityGroup”
特性:
GroupDescription:“组1”
VpcId:!参考VpcId
安全组2:
类型:“AWS::EC2::SecurityGroup”
特性:
GroupDescription:“组2”
VpcId:!参考VpcId

很抱歉回复太晚。我以前没有机会测试。您的解决方案非常有效。谢谢!