Python 在aws CDK中找不到select_子网功能
我正在尝试使用aws CDK中aws_ec2.Vpc的select_subnets方法,使用subnet_group_name属性选择私有子网,如下代码段所述:Python 在aws CDK中找不到select_子网功能,python,amazon-web-services,amazon-vpc,aws-cdk,Python,Amazon Web Services,Amazon Vpc,Aws Cdk,我正在尝试使用aws CDK中aws_ec2.Vpc的select_subnets方法,使用subnet_group_name属性选择私有子网,如下代码段所述: from aws_cdk import core as cdk from aws_cdk import aws_ec2 as ec2 from aws_cdk import core class SimpleCdkStack(cdk.Stack): def __init__(self, scope: cdk.Construct, c
from aws_cdk import core as cdk
from aws_cdk import aws_ec2 as ec2
from aws_cdk import core
class SimpleCdkStack(cdk.Stack):
def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
subnets = ec2.Vpc.select_subnets(self,
subnet_group_name="private-subnet"
)
print("Subnet Ids: " + subnets.subnet_ids)
上述错误在执行过程中会产生以下错误:
$ cdk diff
jsii.errors.JavaScriptError:
Error: Class @aws-cdk/core.Stack doesn't have a method 'selectSubnets'
at Kernel._typeInfoForMethod (/tmp/tmphu1erjw6/lib/program.js:8420:27)
at Kernel._findInvokeTarget (/tmp/tmphu1erjw6/lib/program.js:8340:33)
at Kernel.invoke (/tmp/tmphu1erjw6/lib/program.js:7966:44)
at KernelHost.processRequest (/tmp/tmphu1erjw6/lib/program.js:9479:36)
at KernelHost.run (/tmp/tmphu1erjw6/lib/program.js:9442:22)
at Immediate._onImmediate (/tmp/tmphu1erjw6/lib/program.js:9443:46)
at processImmediate (internal/timers.js:461:21)
我已经使用下面的命令安装了所需的软件包
$ pip install aws_cdk.aws_ec2
我不知道我会错在哪里
AWS明确提到了可用于AWS_ec2.Vpc类的方法
谢谢你的帮助 您应该将Vpc引用作为第一个参数传递给select_子网调用,但实际上您已经传递了CDK堆栈的
self
范例
从aws_cdk将aws_ec2导入为ec2
从aws_cdk将核心导入为cdk
类SimpleCdkStack(cdk.Stack):
def(self,scope:cdk.Construct,Construct(id:str,**kwargs))->无:
super()
子网\u id=ec2.Vpc.from\u lookup(
vpc_id='您的vpc id'
).选择子网(
子网\u组\u名称=“专用子网”
).u子网ID
对于子网\u id中的子网\u id:
打印(“子网id:+子网\u id”)