gpt4 book ai didi

amazon-web-services - 如何在CloudFormation中使用嵌套列表?

转载 作者:行者123 更新时间:2023-12-03 07:44:26 24 4
gpt4 key购买 nike

我想将 3 个安全组附加到 EC2 实例。一个是在模板中创建的,另外两个是我使用映射时存在的。当我这样使用时出现错误。

Mappings:
envMap:
qa:
"securityGroups":
- sg-xxxxxxxx
- sg-yyyyyyyy

这是我正在创建的资源......

Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Allow http to client host
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0

EC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: !FindInMap [ envMap, !Ref env, ImageID ]
InstanceType:
!Ref 'InstanceSize'
KeyName: !FindInMap [ envMap, !Ref env, KeyPairName ]
SecurityGroupIds: [!Ref 'InstanceSecurityGroup',!FindInMap [ envMap, !Ref env, securityGroups ] ]
SubnetId: !FindInMap [ envMap, !Ref env, Subnets ]

最佳答案

它可能不喜欢将列表(从映射返回)插入到 SecurityGroupsIds 列表中。这会将列表放入列表中。

如果您的目的是始终包含某些安全组,并且您正在对这些安全组的值进行硬编码,那么您可以使用:

    SecurityGroupIds: [!Ref 'InstanceSecurityGroup','sg-xxxxxxxx', 'sg-yyyyyyyy' ] ]

我没有测试该语法,所以请尝试一下它是否有效。

为了使其更简洁,您可以在参数中将这些安全组指定为默认值,然后从那里插入它们。

关于amazon-web-services - 如何在CloudFormation中使用嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com