AWS CDK如何通过指定可用区获取对应子网ID?
如何获取指定可用区的子网ID?
你的代码报错主要有两个原因:
selectSubnets调用时缺少参数对象的大括号;availabilityZones参数要求传入数组类型,不能直接传单个可用区字符串。
修正后的代码如下:
const vpc = ec2.Vpc.fromLookup(this, 'VPC', { vpcId: vpcid, }); const az1 = vpc.availabilityZones[0]; // 获取第一个可用区的所有子网 const az1Subnets = vpc.selectSubnets({ availabilityZones: [az1], // 用数组包裹单个可用区 }); // 提取该可用区第一个子网的ID const subnetid1 = az1Subnets.subnets[0].subnetId;
如果需要指定子网类型(比如私有子网),可以在selectSubnets中添加subnetType参数:
const az1PrivateSubnets = vpc.selectSubnets({ availabilityZones: [az1], subnetType: ec2.SubnetType.PRIVATE_ISOLATED, // 可选值还有PRIVATE_WITH_EGRESS、PUBLIC }); const privateSubnetId1 = az1PrivateSubnets.subnets[0].subnetId;
内容的提问来源于stack exchange,提问作者CJ Chang
相关产品推荐
相关产品推荐

