Создание экземпляра 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")]))
Другие вопросы по тегам