AWS-CDK 错误:此 VPC 中没有“公共”子网。使用不同的 VPC 子网选择

use*_*191 7 aws-cdk

我正在将 CDK 堆栈从 0.30.0 移植到 0.39.0。我的 AWS 账户有一个预定义的 VPC,我只需将其导入堆栈即可。相同的子网在 0.30.0 中工作正常,但在 0.39.0 中收到错误消息:

“此 VPC 中没有‘公共’子网。请使用不同的 VPC 子网选择。”

我的堆栈中有一个 VPC 和 3 个子网。我还有一个通往 dynamodb 和 s3 的网关。

有人遇到过这个问题吗?

我尝试删除除导入 VPC 之外的所有其他代码。

在 0.30.0 中,我使用这些行并且没有问题。

vpc = ec2.VpcNetwork.import(this, 'myvpc', {
  vpcId: 'vpc-xxxxxxxxxxxxxxxx',
  availabilityZones: ['ap-southeast-2a','ap-southeast-2b','ap-southeast-2c'],
  privateSubnetIds: ['subnet-xxxxxxxxxxxx', 'subnet-xxxxxxxxxxxx', 'subnet-xxxxxxxxxxxx']
});
Run Code Online (Sandbox Code Playgroud)

在0.39.0中,我将其更改为:

vpc = ec2.Vpc.fromVpcAttributes(this, 'myvpc', {
  vpcId: "vpc-xxxxxxxxxxxxxxxx",
  availabilityZones: ['ap-southeast-2a','ap-southeast-2b','ap-southeast-2c'],
  privateSubnetIds: ['subnet-xxxxxxxxxxxx', 'subnet-xxxxxxxxxxxx', 'subnet-xxxxxxxxxxxx']
});
Run Code Online (Sandbox Code Playgroud)

Jim*_*ren 5

我今天了解到 cdk 希望标记公共子网。说真的,即使从 cdk 1.5.0 开始,您也需要:

标签: 键:aws-cdk:subnet-type 值:Public