Причина, по которой вы не можете вывести несколько общедоступных IP-адресов, заключается в том, что вы не создаете несколько общедоступных IP-адресов.Поэтому, когда вы используете ${data.azurerm_public_ip.test.*.ip_address}
для их вывода, эти ресурсы для вас отсутствуют.
Для terraform вы можете добавить count
в ресурс azurerm_public_ip
, чтобы создать несколько общедоступных IP-адресов и вывести их с помощьюazurerm_public_ip.test.*.ip_address
вот так:
variable "count" {
default = "2"
}
...
resource "azurerm_public_ip" "test" {
count = "${var.count}"
name = "test-${count.index}-pip"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
public_ip_address_allocation = "Static"
idle_timeout_in_minutes = 30
tags {
environment = "test-${count.index}"
}
}
...
output "public_ip_address" {
value = "${azurerm_public_ip.test.*.ip_address}"
}
Снимок экрана с результатом выглядит так:
Я сделал тест, просто создаюпублика.Поэтому я изменил метод выделения на статический и вывел его вместе с ресурсом.
Если вы хотите использовать data
для ссылки на публичные IP-адреса.Код будет выглядеть так:
data "azurerm_public_ip" "test" {
count = "${var.count}"
name = "${element(azurerm_public_ip.test.*.name, count.index)}"
resource_group_name = "${azurerm_resource_group.test.name}"
}
output "public_ip_address" {
value = "${data.azurerm_public_ip.test.*.ip_address}"
}
Надеюсь, это поможет вам.Если вам нужна дополнительная помощь, пожалуйста, дайте мне знать.