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

如何通过Terraform AWS VPC模块将公有子网关联至默认路由表

关于Terraform AWS VPC模块路由表配置的问题解答

问题1:能否通过该模块将自动创建的公网路由表设为VPC主路由表?

可以。该模块提供了public_route_table_default参数,将其设为true后,模块会自动把创建的公网路由表设置为VPC的主路由表,无需额外配置默认路由表关联逻辑。

修改后的模块配置片段:

module "vpc" {
  source                  = "terraform-aws-modules/vpc/aws"
  name                    = "${local.app_name}-vpc"
  cidr                    = local.vpc_cidr
  enable_dns_hostnames    = true
  map_public_ip_on_launch = true

  azs            = local.azs
  public_subnets = [for key, value in local.azs : cidrsubnet(local.vpc_cidr, 8, key + 100)]

  # 开启将公网路由表设为主路由表
  public_route_table_default = true
  manage_default_security_group = false
  manage_default_network_acl    = false
}

问题2:如果选择使用默认路由表,能否让模块将子网关联到默认路由表并添加指向IGW的路由?

可以。通过开启manage_default_route_table = true,并正确配置default_route_table_routes添加默认路由即可。注意不要直接引用module.vpc.igw_id(会触发循环依赖),而是使用模块支持的type = "igw",让模块自动关联已创建的互联网网关。

修改后的配置片段:

module "vpc" {
  source                  = "terraform-aws-modules/vpc/aws"
  name                    = "${local.app_name}-vpc"
  cidr                    = local.vpc_cidr
  enable_dns_hostnames    = true
  map_public_ip_on_launch = true

  azs            = local.azs
  public_subnets = [for key, value in local.azs : cidrsubnet(local.vpc_cidr, 8, key + 100)]

  manage_default_route_table = true
  # 配置默认路由表的IGW路由,使用type = "igw"避免循环依赖
  default_route_table_routes = [
    {
      cidr_block = "0.0.0.0/0"
      type       = "igw"
    }
  ]
  manage_default_security_group = false
  manage_default_network_acl    = false
}

配置完成后,模块会自动将公子网关联到默认路由表,并添加指向IGW的0.0.0.0/0路由,此时默认路由表会作为VPC的主路由表。

内容的提问来源于stack exchange,提问作者aalok89

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:42:44