【发布时间】:2021-01-15 16:23:00
【问题描述】:
我有一个模块,它有一个使用 for_each 定义的变量,它的输出如下:
output "nic_ids" {
value = [for x in azurerm_network_interface.nic : x.id]
}
nic_ids = [
"/subscriptions/*****/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/test-nic-1",
"/subscriptions/*****/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/test-nic-2",
]
我的目标是将以上 NIC id 传递给 VM 模块,并在 NIC id 和 VM 之间进行 1:1 映射(test-nic-1 应该只附加到 vm-1 、test-nic-2 到 vm-2 等)
module "vm" {
source = "*****/vm/azurerm"
version = "0.1.0"
vms = var.vms
nic_ids = module.nic[each.value.id].nic_ids
}
我遇到以下错误:
Error: each.value cannot be used in this context
on main.tf line 58, in module "vm":
58: nic_ids = module.nic[each.value.id].nic_ids
A reference to "each.value" has been used in a context in which it
unavailable, such as when the configuration no longer contains the value in
its "for_each" expression. Remove this reference to each.value in your
configuration to work around this error.
我用这个similar question 作为参考。 你能推荐一下吗?
【问题讨论】:
标签: terraform terraform-provider-azure