引用Terraform地图输出



我使用下面的代码从一个使用for_each循环创建Azure vm的模块创建一个映射输出。

output "vm_ids" {
description = "Virtual machine IDs"
value = tomap({
for k, server in azurerm_windows_virtual_machine.vm : k => server.id
})
}

我不知道如何正确地引用地图中的单个条目。如果我输出整个地图module.vm_ADDS01.vm_ids(vm_ADDS01是模块标识符),我得到以下内容:

+ testvmid = {
+ "app_01" = (known after apply)
+ "app_02" = (known after apply)
}

我尝试了以下变体,提供其中一个条目的键

module.vm_ADDS01.vm_ids[app_01]
module.vm_ADDS01.vm_ids[app_01].id
module.vm_ADDS01[app_01].vm_ids

我收到以下错误。

对资源类型的引用之后必须至少有一个属性访问,指定资源名称。

感谢Matt指出缺少的引号。需要在引号中提供map键,因此工作示例是。

module.vm_ADDS01.vm_ids["app_01"]

最新更新