Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在aws CDK中找不到select_子网功能_Python_Amazon Web Services_Amazon Vpc_Aws Cdk - Fatal编程技术网

Python 在aws CDK中找不到select_子网功能

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

我正在尝试使用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, 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”)