Как отобразить значения из списка в terraform? - PullRequest
0 голосов
/ 05 марта 2019

У меня есть модуль, который извлекает управляемые диски из группы ресурсов, затем я вызываю этот модуль из другого модуля, где будут отображаться имена всех управляемых дисков.

Когда я запускаю команду плана, я получаю сообщение об ошибке «имя должно быть одним значением, а не списком».Как отобразить значения из списка ??

Модуль 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}"
  }

1 Ответ

0 голосов
/ 05 марта 2019

В вашей проблеме, когда вы создаете список, включающий все управляемые диски 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}"
    }

Итак, вы должны убедиться, что список является реальным списком.Затем просто выведите, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...