Модуль 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
}