【问题标题】:Adding Multiple Existing Security Groups to EC2 using AWS-CDK (python)使用 AWS-CDK (python) 将多个现有安全组添加到 EC2
【发布时间】:2020-10-21 19:58:54
【问题描述】:

尝试将多个现有安全组添加到新的 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"}]]

【问题讨论】:

    标签: amazon-web-services aws-cdk


    【解决方案1】:

    将 globalsg 定义为列表,去掉 dict 括号,并且在引用时不要将其包装在列表中。像这样的:

    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

    【讨论】:

    • 谢谢。我试过你的建议,但它仍然不起作用 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-xb211") ] security_group = globalsg 这是错误。 jsii.errors.JSIIError:预期的对象引用,得到 [{"$jsii.byref":"@aws-cdk/core.Resource@10052"},{"$jsii.byref":"@aws-cdk/core. Resource@10053"}] 子进程退出,错误 1
    • 查看编辑,我在答案中添加了更多内容。构造函数采用单个安全组
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2020-08-25
    • 2017-10-25
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 2021-08-08
    相关资源
    最近更新 更多