使用AWS-CDK将多个现有安全组添加到EC2(python)

时间:2020-10-21 19:58:54

标签: amazon-web-services aws-cdk

尝试将多个现有安全组添加到新的ec2中。它似乎不起作用。如果它是globalsg中的一组,那么它将起作用。

globalsg ={
(ec2.SecurityGroup.from_security_group_id(self, "sg01", security_group_id = "sg-xb9b")),
(ec2.SecurityGroup.from_security_group_id(self, "sg02", security_group_id = "sg-x211"))
}
#Webserver 01
    web01 = ec2.Instance(
        self,
        "web01Id",
        instance_type = ec2.InstanceType(instance_type_identifier=variables["inst_type"]),
        instance_name = "A.APP.PR01",
        machine_image = ec2.MachineImage.generic_linux(
                {variables["region"]: linux_ami}
        ),            
        vpc=vpc,
        vpc_subnets = vpc_priv_use1a,
        user_data = ec2.UserData.custom(user_data),
        security_group= [globalsg]
    )

这是我得到的错误
jsii.errors.JSIIError:期望的对象引用,得到了[[{“ $ jsii.byref”:“ @ aws-cdk/core.Resource@10052”}]]

1 个答案:

答案 0 :(得分:0)

将globalsg定义为列表,删除字典括号,并且在引用它时不要将其包装在列表中。像这样:

globalsg = [
    ...
]

...

security_group=globalsg[0]
)

web01.add_security_group(globalsg[1])

实例在构造函数中采用单个安全组。然后,您可以调用add_security_group添加更多内容。

https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ec2/Instance.html#aws_cdk.aws_ec2.Instance.add_security_group