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

Terraform配置NACL关联时如何同时获取公网和私网子网ID

你可以使用Terraform内置的concat()函数完成两个子网ID列表的拼接,直接替换原有subnet_ids的赋值逻辑即可,修改后的配置示例如下:

vpc_id = aws_vpc.vpc.id
# 用concat拼接公网、私网子网ID列表
subnet_ids = concat(aws_subnet.public_subnet.*.id, aws_subnet.private_subnet.*.id)
egress {
  protocol   = "tcp"
  rule_no    = 200
  action     = "allow"
  cidr_block = "10.3.0.0/18"
  from_port  = 443
  to_port    = 443
}

补充说明

  • concat()是Terraform原生的列表拼接函数,支持拼接任意多个同类型的列表,返回合并后的新列表,完全兼容NACL资源的subnet_ids参数要求
  • 如果你是用for_each而非count声明的公网/私网子网资源,需要先把资源集合转成值列表再用splat表达式,示例写法为concat(values(aws_subnet.public_subnet)[*].id, values(aws_subnet.private_subnet)[*].id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:54:01