Ошибка вывода(возврата) модуля вызова счетчика терраформирования

# #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. конечно, я сделаю это через час