c# - AWS CDK : Vpc subnet conflicts with another subnet

标签 c# amazon-web-services aws-cdk vpc

我想在 VPC 内的 AWS CDK 中创建 OpenSearch 域。我已经取得了一些进展,但我仍然遇到有关 CIDR 的问题。

var vpc = new Vpc(scope, "Vpc");
var subnet = new Subnet(scope, "Subnet", new SubnetProps
{
     VpcId = vpc.VpcId,
     CidrBlock = "10.0.1.0/24",
     AvailabilityZone = "us-east-1a"
});
var domain = new Domain(scope, "Domain", new DomainProps
{
     Vpc = vpc,
     VpcSubnets = new SubnetSelection[] 
     { 
         new SubnetSelection
         {
             Subnets = new Subnet[]
             {
                 subnet
             }
         }
     },
     SecurityGroups = new SecurityGroup[]
     {
         new SecurityGroup(scope, "SecurityGroup", new SecurityGroupProps
         {
             Vpc = vpc
         })
     },
     // other property initializations are omitted
}

我收到的错误是CIDR“10.0.1.0/24”与另一个子网冲突。如果我要创建一个只有一个子网的全新 Vpc,怎么会出现这种情况呢?我假设可能有更多隐式创建的子网。我该如何解决这个问题?

目前我不关心多个可用区,因此我需要将域放置在单个子网内。

最佳答案

VPC 构造的 IpAddressesSubnetConfiguration props 允许您自定义 CIDR 范围和子网。

您的 VPC 构造函数未定义这些属性,因此将应用默认值(分配给 2 个子网的10.0.0.0/16)。这些默认值与您手动创建的子网冲突。

请原谅我糟糕的 C#,但您需要一个像这样的 VPC 构造函数:

Vpc vpc = new Vpc(this, "VPC", new VpcProps {
    IpAddresses = IpAddresses.Cidr("10.0.0.0/24")
    MaxAzs = 1,
    SubnetConfiguration = new ISubnetConfiguration[]
    {
        new SubnetConfiguration
        {
            SubnetType = SubnetType.PUBLIC,
            Name = "Public"
        }
    }
});

请参阅Ip Address Management文档中的部分了解详细信息。

关于c# - AWS CDK : Vpc subnet conflicts with another subnet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75438614/

相关文章:

amazon-web-services - 为什么通过 cdk 向 dynamodb 表添加二级索引需要重新创建该表?

amazon-web-services - AWS CDK 生成的资源标识符非常糟糕且不可读。有任何解决这个问题的方法吗?

c# - 合并 DataGrid 列标题

c# - 将任何字段前缀绑定(bind)到 C# MVC 4/5 中的操作参数

amazon-web-services - DynamoDB 何时限制请求?

amazon-web-services - ECR 生命周期策略异常

amazon-web-services - 从单个 aws s3 存储桶托管多个子域

c# - 如何修复 C# 中的 "System.String[]"错误? (使用数组+For循环)

C# 属性,为什么要在赋值前检查是否相等

amazon-web-services - 当 ECR 镜像引用代码时,AWS CDK 更新 lambda 函数代码