我有一个带有 for_each 循环条件的资源 block ,我想输出资源 block 的名称和地址前缀。
main.tf:
resource "azurerm_subnet" "snets" {
for_each = var.subnets
name = each.key
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = [each.value]
}
我试过类似的方法,但没有用。
输出.tf
output "azurerm-subnet" {
value = azurerm_subnet.snets.*.name
}
错误:
│ Error: Unsupported attribute
│
│ on output.tf line 2, in output "azurerm-subnet":
│ 2: value = azurerm_subnet.snets.*.name
│
│ This object does not have an attribute named "name".
最佳答案
这可以通过 list
构造函数和 for
表达式轻松实现。我们遍历 azurerm_subnet.snets
的导出属性的 map
并在每次迭代时返回 name
值:
output "azurerm_subnets" {
value = [ for subnet in azurerm_subnet.snets : subnet.name ]
}
并且输出 azurerm_subnets
将是一个 list(string)
,其中每个元素都是子网名称。
关于terraform - 如何在 terraform 中获取 for_each 循环条件的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70249255/