variables.tf
variable "env_name" {
default = "some_client"
}
variable "azure_instance_names" {
default = [
"AD01",
"AD01",
]
}
I ', пытаюсь создать публичный IP для столько экземпляров, сколько указано в переменной azure_instance_names
(в нашем случае 2), у меня проблемы с именованием этого ресурса, я хочу создать имя путем объединения env_name
и azure_instance_names
переменная. Это должно быть одно слово, разделенное -
, поэтому имя должно быть в env_name-azure_instance_names, например:
Желаемый выход
имя = some_client-AD01
some_client-AD02
Фактический объем производства:
имя = some_client AD01
some_client AD02
main.tf
resource "azurerm_public_ip" "datasourceip" {
count = "${length(var.azure_instance_names)}"
name = "${join("-", list(format("%s %s", var.env_name, element(var.azure_instance_names, count.index))))}"
location = "${azurerm_resource_group.res_group.location}"
resource_group_name = "${azurerm_resource_group.res_group.name}"
allocation_method = "Static"
}
В терраформе я получаю:
+ azurerm_public_ip.datasourceip[1]
id: <computed>
allocation_method: "Static"
fqdn: <computed>
idle_timeout_in_minutes: "4"
ip_address: <computed>
ip_version: "IPv4"
location: "westeurope"
name: "some_client AD01"
resource_group_name: "myrg1"
sku: "Basic"
tags.%: <computed>
Поскольку Azure не принимает имя ресурса более чем в одном слове i ', попытка соединить "-" с var.env_name, var.azure_instance_names
, поэтому имя ресурса должно быть some_client-AD01
Хотя я указал функцию соединения i ', все равно получаю ту же ошибку:
azurerm_public_ip.datasourceip.1: Ошибка создания / обновления общедоступного IP-адреса "some_client AD01" (группа ресурсов "myrg1"): network.PublicIPAddressesClient # CreateOrUpdate: ошибка отправки запроса: StatusCode = 400 - Исходная ошибка: Code = "InvalidResourceName" Сообщение = "Имя ресурса some_client LBA-P-EU2B-AD01 недопустимо. Имя может содержать до 80 символов. Оно должно начинаться с символа слова и заканчиваться символом слова или ''. Имя может содержать символы слова или '.', '-', ''. " Детали = []