Модуль Terraform выдает ошибку о необходимости строки

Я пытался разбить свой код терраформирования из одного большого файла на отдельные модули. Я постоянно сталкиваюсь с проблемой, когда при запуске Terraform Plan появляется следующая ошибка.

Error: Incorrect attribute value type

  on modules/nsg/main.tf line 11, in resource "azurerm_network_security_group" "InternalProdNSGPrivate":
  11:   resource_group_name = "${module.rg.main-rg-id}"

Inappropriate value for attribute "resource_group_name": string required.

Я создал outputs.tf файл, который имеет следующее:

output "main-rg-id" {
  value = "${azurerm_resource_group.InternalProd}"
}

В main.tf для этого модуля есть следующее:

module "global_variables" {
  source = "../global_variables"
}

resource "azurerm_resource_group" "InternalProd" {
  name     = "Internal"
  location = "${module.global_variables.location}"
}

В файле main.tf для NSG у меня настроено следующее:

module "rg" {
  source = "../rg"
}
module "global_variables" {
  source = "../global_variables"
}

resource "azurerm_network_security_group" "InternalProdNSGPrivate" {
  name                = "Internal-NSG"
  location            = "${module.global_variables.location}"
  resource_group_name = "${module.rg.main-rg-id}"
....
}

Не уверен, где я ошибаюсь с конфигурацией. Пытался просмотреть несколько разных ресурсов, блогов и т. Д., Но безуспешно.

1 ответ

Решение

azurerm_resource_group.InternalProd это объект, представляющий все resource "azurerm_resource_group" "InternalProd".

Чтобы создать только идентификатор этого объекта, вы можете получить доступ к атрибуту id нравится:

output "main-rg-id" {
  value = azurerm_resource_group.InternalProd.id
}
Другие вопросы по тегам