gpt4 book ai didi

terraform - 如何在 terraform 中获取 for_each 循环条件的输出?

转载 作者:行者123 更新时间:2023-12-02 01:51:37 41 4
gpt4 key购买 nike

我有一个带有 for_each 循环条件的资源 block ,我想输出资源 block 的名称和地址前缀。

ma​​in.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/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com