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

Terraform如何输出for_each循环创建资源的属性值

Terraform for_each创建子网的输出配置解决方案

报错根因

使用for_each创建的资源集合为map类型,而你用到的splat 表达式(.*)仅支持count创建的列表类型资源集合,因此无法直接通过*.name的方式提取属性。

正确output配置

你可以通过for表达式遍历map类型的资源集合,按需提取目标属性:

1. 同时输出所有子网的名称和地址前缀(键值对格式,键为子网名)

output "azurerm_subnet_info" {
  value = {
    for subnet in azurerm_subnet.snets : subnet.name => subnet.address_prefixes
  }
}

2. 输出所有子网名称的列表

output "azurerm_subnet_names" {
  value = [for subnet in azurerm_subnet.snets : subnet.name]
}

3. 输出所有子网地址前缀的列表

output "azurerm_subnet_prefixes" {
  value = [for subnet in azurerm_subnet.snets : subnet.address_prefixes]
}

4. 输出子网信息对象列表(每个元素包含name和address_prefixes属性)

output "azurerm_subnet_list" {
  value = [for subnet in azurerm_subnet.snets : {
    name             = subnet.name
    address_prefixes = subnet.address_prefixes
  }]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:45:00