Создание экземпляра ec2 и добавление новых и существующих групп безопасности
У меня есть некоторый тропосферный код, который а) захватывает список идентификаторов групп безопасности в качестве параметра, используя список б) создает новую группу безопасности
groups = template.add_parameter(Parameter(
"securityGroups",
Type="List<AWS::EC2::SecurityGroup::Id>",
Description="Security Groups for EC2 Instance",
))
ec2_sg = template.add_resource(
ec2.SecurityGroup(
'sg',
GroupName = 'sg_test_app',
GroupDescription = 'Test SG',
VpcId = Ref(vpcid),
Tags=Tags( **tags )
)
)
Если я создаю EC2 со следующими ссылками на (а), это работает:
inst_ec2 = template.add_resource(
ec2.Instance(
"EC2Instance",
ImageId = 'ami-8b8c57f8',
InstanceType = Ref(Type),
IamInstanceProfile=Ref(instance_profile),
SubnetId = Ref(snid),
Tags=Tags(**tags),
SecurityGroupIds = [ GetAtt(csso_ec2_sg, "GroupId") ],
DependsOn = [
'EC2InstanceProfile',
'sg'
]
)
)
и если я ссылаюсь на (б), это работает:
inst_ec2 = template.add_resource(
ec2.Instance(
"EC2Instance",
ImageId = 'ami-8b8c57f8',
InstanceType = Ref(Type),
IamInstanceProfile=Ref(instance_profile),
SubnetId = Ref(snid),
Tags=Tags(**tags),
SecurityGroupIds = groups,
DependsOn = [
'EC2InstanceProfile',
'sg'
]
)
)
Тем не менее, я не могу понять, как добавить оба - это не работает:
inst_ec2 = template.add_resource(
ec2.Instance(
"EC2Instance",
ImageId = 'ami-8b8c57f8',
InstanceType = Ref(Type),
IamInstanceProfile=Ref(instance_profile),
SubnetId = Ref(snid),
Tags=Tags(**tags),
SecurityGroupIds = [ GetAtt(csso_ec2_sg, "GroupId"), groups ],
DependsOn = [
'EC2InstanceProfile',
'sg'
]
)
)
Кто-нибудь может подсказать, как это сделать?
1 ответ
Вы можете попробовать присоединиться, а затем разделить списки. Нечто подобное может работать:
SecurityGroupIds = Split(",", Join(",", [Join(",", groups), GetAtt(csso_ec2_sg, "GroupId")]))