我有一个从资源组中获取托管磁盘的模块,然后从另一个模块中调用该模块,其中将显示所有托管磁盘的名称。
当我运行plan命令时,出现错误“名称必须是单个值,而不是列表”。如何显示列表中的值?
模块1-获取值
data "azurerm_managed_disk" "disk" {
resource_group_name = "mfa-rg"
name = ["*"]
}
output "disks" {
value = ["${data.azurerm_managed_disk.disk.name}"]
}
模块2-调用模块1显示值
module "rgmod"{
source = "./RG"
}
output "rgdetails"{
value = "${module.rgmod.disks}"
}
答案 0 :(得分:0)
在您的问题中,当您创建包含所有Azure托管磁盘的列表时,可以像这样显示列表中的所有磁盘名称:
output "disks" {
value = "${data.azurerm_managed_disk.disk.*.name}"
}
让我们看一下多个接口列表的示例。当您这样创建多个接口时:
resource "azurerm_network_interface" "test" {
count = 5
name = "acceptanceTestNetworkInterface1"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
ip_configuration {
name = "testconfiguration1"
subnet_id = "${azurerm_subnet.test.id}"
private_ip_address_allocation = "Dynamic"
}
tags {
environment = "staging"
}
}
然后您可以显示所有接口名称,如下所示:
output "disks" {
value = "${azurerm_network_interface.test.*.id}"
}
因此,您应该确保列表是真实列表。然后像上面一样输出。