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

如何在Terraform中动态遍历所有aws_subnet资源实例?

解决Terraform引用所有aws_subnet实例的问题

要一次性引用所有aws_subnet实例,你需要用aws_subnet.*.values来获取该资源类型的全部实例列表,而不是直接用aws_subnet.*(后者是资源对象集合,并非可直接遍历的实例属性列表)。

修改后的代码可以简化成:

subnets_by_role = {
  for subnet in aws_subnet.*.values :
  subnet.tags.subnet_role => subnet...
}

说明

  • 这个写法会自动遍历所有aws_subnet实例,不管你是单独命名的(比如aws_subnet.public、aws_subnet.private)还是用count/for_each动态创建的。
  • 和你原来的merge逻辑完全一致:如果多个子网的subnet_role标签值相同,后遍历到的子网会覆盖先遍历的,和之前两个映射merge时的覆盖规则保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:20:19