【问题标题】:AWS CDK Vpc.GetPublicSubnets() returning incorrect number of public subnetsAWS CDK Vpc.GetPublicSubnets() 返回错误数量的公有子网
【发布时间】:2021-05-28 06:35:27
【问题描述】:

使用 AWS CDK JAVA。 我正在创建一个具有 /26 的 CIDR 和四个 CIDR /28 的公共子网分布在 4 个 AZ 上的 VPC。

SubnetConfiguration subnetConfiguration = null;
    subnetConfiguration = SubnetConfiguration.builder()
            .name(("SN-" + propertyObject.getCoreProjectNumber() + propertyObject.getCoreSiteId()).toLowerCase())
            .subnetType(software.amazon.awscdk.services.ec2.SubnetType.PUBLIC)
            .cidrMask(28)
            .build();
    List<SubnetConfiguration> subnetList = new ArrayList<SubnetConfiguration>();
    subnetList.add(subnetConfiguration);
    vpc = Vpc.Builder.create(this, ("VPC-" + propertyObject.getCoreProjectNumber() + propertyObject.getCoreSiteId()).toLowerCase())
            .cidr(26)
            .enableDnsHostnames(false)
            .maxAzs(4)
            .subnetConfiguration(subnetList)
            .vpnGateway(false)
            .build();

这将按预期创建一个 VPC,其中 4 个 CIDR /28 的公共子网分布在 4 个 AZ 上。

当我使用此代码访问同一个 VPC 时:

    List<String> subnetIdList=new ArrayList<String>();
    for(ISubnet subnet: vpc.getPublicSubnets()) {
        subnetIdList.add(subnet.getSubnetId());
    }       
System.out.println(subnetIdList);

它正好返回 3 个公共子网。

VPC99999/vpc-99999awuse1/sn-99999awuse1子网1
VPC99999/vpc-99999awuse1/sn-99999awuse1子网2
VPC99999/vpc-99999awuse1/sn-99999awuse1Subnet3

我的智慧到此为止。任何人都知道我做错了什么或者这里是否有错误? 谢谢, 迈克

【问题讨论】:

    标签: java amazon-web-services amazon-vpc aws-cdk


    【解决方案1】:

    啊!没关系。问题不是 CDK 错误,而是 Eclipse 编译器错误。在 IDE 中,存在问题,但是当您使用 Maven 编译并执行 CDK Synth 时,一切都很好。 ——迈克尔·汤姆森

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-03
      • 2020-02-04
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2019-07-04
      • 2018-07-24
      相关资源
      最近更新 更多