You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform创建AWS子网时遇InvalidVpcID.NotFound错误求助

Terraform创建子网时InvalidVpcID.NotFound错误的修复方案

错误根源

你在子网资源中使用var.VPC_ID作为vpc_id的值,但这个变量只是VPC的自定义名称(默认值"My-VPC"),而AWS要求vpc_id必须是实际的VPC ID(格式如vpc-0abcd1234efgh5678),而非自定义名称。同时还有几处配置疏漏需要修正。

修复步骤及代码示例

  1. 修正子网的VPC ID引用
    将子网的vpc_id从变量引用改为Terraform VPC资源的属性引用,这样会自动关联刚创建的VPC的实际ID,同时确保资源创建顺序(先建VPC再建子网)。

  2. 修正子网CIDR块
    当前子网使用了与VPC相同的CIDR范围,会导致地址冲突,应使用var.Public_Subnet中定义的子网专属CIDR。

  3. 补全缺失的变量
    VPC资源中用到的var.Instance_tenancy未在变量文件中定义,需补充该变量。

  4. 添加可用区配置
    子网必须指定可用区,使用已定义的var.Public_AVZ变量配置。


修正后的variable.tf

variable "VPC_ID" {
  description = "自定义VPC名称"
  type        = string
  default     = "My-VPC"
}

variable "cidr" {
  description = "VPC的IPv4 CIDR块"
  type        = string
  default     = "10.0.0.0/16"
}

variable "Public_Subnet" {
  description = "公网子网的CIDR列表"
  type        = list(string)
  default     = ["10.0.1.0/24"]
}

variable "Public_AVZ" {
  description = "公网子网所在可用区"
  type        = string
  default     = "aps1-az1"
}

# 补充缺失的实例租期变量
variable "Instance_tenancy" {
  description = "VPC的实例租期设置"
  type        = string
  default     = "default"
}

修正后的VPC资源文件(vpc.tf)

resource "aws_vpc" "My-VPC" {
  cidr_block       = var.cidr
  instance_tenancy = var.Instance_tenancy

  tags = {
    Name = var.VPC_ID
  }
}

修正后的子网资源文件(subnets.tf)

resource "aws_subnet" "Public_Subnet" {
  vpc_id            = aws_vpc.My-VPC.id # 引用实际VPC ID
  cidr_block        = var.Public_Subnet[0] # 使用子网专属CIDR
  availability_zone = var.Public_AVZ # 指定可用区

  tags = {
    Name = "Public-Subnet"
  }
}

可选:批量创建多个子网

如果需要基于var.Public_Subnet列表创建多个子网,可使用for_each:

resource "aws_subnet" "Public_Subnet" {
  for_each          = toset(var.Public_Subnet)
  vpc_id            = aws_vpc.My-VPC.id
  cidr_block        = each.value
  availability_zone = var.Public_AVZ

  tags = {
    Name = "Public-Subnet-${index(var.Public_Subnet, each.value)}"
  }
}

验证修复

完成配置修改后,依次运行:

terraform validate
terraform plan
terraform apply

此时应该能正常创建VPC和子网,不再出现InvalidVpcID.NotFound错误。

内容的提问来源于stack exchange,提问作者Support Test email account

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:36:02