У меня есть следующий модуль terraform:
provider "azurerm" {
}
variable "env" {
type = string
description = "The SDLC environment (qa, dev, prod, etc...)"
}
variable "appsvc_names" {
type = list(string)
description = "The names of the app services to create under the same app service plan"
}
locals {
location = "eastus2"
resource_group_name = "app505-dfpg-${var.env}-web-${local.location}"
}
resource "azurerm_app_service_plan" "asp" {
name = "${local.resource_group_name}-asp"
location = local.location
resource_group_name = local.resource_group_name
kind = "Linux"
reserved = true
sku {
tier = "Basic"
size = "B1"
}
}
resource "azurerm_app_service" "appsvc" {
for_each = toset(var.appsvc_names)
name = "${local.resource_group_name}-${each.value}-appsvc"
location = local.location
resource_group_name = local.resource_group_name
app_service_plan_id = azurerm_app_service_plan.asp.id
}
# output "hostnames" {
# value = azurerm_app_service.appsvc[*].default_site_hostname
# description = "The hostnames of the created app services"
# }
Это работает, но я хочу вывести имена хостов. Желательно в качестве карты, но на данный момент может быть в порядке и список.
Когда я раскомментирую оператор вывода и запускаю terraform apply
, я получаю следующее:
Error: Unsupported attribute
on ..\..\modules\web\main.tf line 42, in output "hostnames":
42: value = azurerm_app_service.appsvc[*].default_site_hostname
This object does not have an attribute named "default_site_hostname".
Так как мне это сделать? вывести список (или лучше карту) имен хостов новых сервисов приложения?
(вопрос также размещен здесь - https://discuss.hashicorp.com/t/how-to-output-the-hostnames-of-app-services-created-with-for-each-in-terraform/5405)