# #amazon-web-services #azure #google-cloud-platform #terraform #hcl
Вопрос:
Мне нужно вернуть вывод только имени и идентификатора
корень main.tf
# Azure Provider configuration
provider "azurerm" {
features {}
}
module "rg" {
source = "../../modules/rg"
count = length(var.resource_groups)
resource_group_name = var.resource_groups[count.index].name
tags = {}
location = westus2
lookup = false
}
модуль/rg/main.tf
resource "azurerm_resource_group" "rg" {
count = var.lookup == true ? 0 : 1
name = var.resource_group_name
location = var.location
tags = var.tags
}
output "rg_id" {
description = "The id of the newly created rg"
value = azurerm_resource_group.rg[count_index].id # azurerm_resource_group.rg, this statement will work
}
output "rg_name" {
description = "The name of the newly created rg"
value = azurerm_resource_group.rg[count_index].name # azurerm_resource_group.rg, this statement will work
}
Я получаю ошибку ниже:
За ссылкой на тип ресурса должен следовать по крайней мере один доступ к атрибуту с указанием имени ресурса.
Комментарии:
1. Что такое
count_index
? Это не определено.2. Если я определю, как это, значение = azurerm_resource_group.rg.name, Я получаю , потому что azurerm_resource_group.rg имеет набор «количество», его атрибуты должны быть доступны в определенных экземплярах.
3. И где это
is_default
определено? Так ли этоmodule.rg.is_default
?4. я просто удалил is_default , о котором идет речь, чтобы устранить путаницу,
Ответ №1:
Я думаю, что ваша проблема должна решаться следующим образом:
output "rg_id" {
description = "The id of the newly created rg"
value = var.lookup == true ? azurerm_resource_group.rg[0].id : null
}
output "rg_name" {
description = "The name of the newly created rg"
value = var.lookup == true ? azurerm_resource_group.rg[0].name : null
}
Комментарии:
1. как попасть в корневой каталог? для использования в другом модуле , resource_group_name = module.rg.rg_name, но он не работает
2. @Vidya Извините, теперь я понимаю, что вы имеете в виду? Возможно, вы могли бы задать новый вопрос с соответствующими деталями, если это новая проблема.
3. конечно, я сделаю это через час