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

如何用Terraform为多个AWS私有路由表添加GWLB路由

实现私有路由表批量添加GWLB路由的Terraform配置

你可以通过setproduct结合for_each实现嵌套循环效果,生成所有私有路由表与公有子网CIDR的组合,批量创建路由规则。具体配置代码如下:

resource "aws_route" "private_to_public_via_gwlb" {
  # 生成私有路由表ID与公有子网CIDR的笛卡尔积组合
  for_each = toset(setproduct(
    module.vpc.private_route_table_ids,
    module.vpc.public_subnets_cidr_blocks
  ))

  route_table_id         = each.value[0]
  destination_cidr_block = each.value[1]
  # 替换为你的GWLB防火墙端点ID
  network_interface_id   = var.gwlbe_endpoint_id
}

代码说明:

  • setproduct(module.vpc.private_route_table_ids, module.vpc.public_subnets_cidr_blocks)会生成两个列表的笛卡尔积,得到9组(3个路由表 × 3个CIDR)组合,每组包含一个私有路由表ID和一个公有子网CIDR。
  • toset将笛卡尔积结果转换为集合类型,适配for_each的语法要求。
  • 每个aws_route实例对应一组组合,为指定私有路由表添加指向对应公有子网CIDR的路由,确保流量强制通过GWLB防火墙端点转发。

这种逻辑和你之前配置公有路由表到私有子网的思路一致,仅调换了路由表与目标CIDR的来源列表,满足安全团队的流量转发要求。

内容的提问来源于stack exchange,提问作者Lakshminarayanan K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:35:00