#azure #terraform #terraform-provider-azure
#azure #терраформирование #terraform-provider-azure
Вопрос:
Я определил azurerm_resource_group_template_deployment my_rm, который имеет источник шаблона ARM:
{
...
"parameters": {... },
"resources": [ ... ],
"outputs": {
"db_name": {
"type": "string",
"value": "test_value"
}
}
}
Я хотел бы использовать этот вывод в terraform, например:
output "db_name" {
value = azurerm_resource_group_template_deployment.my_rm.output_content["db_name"]
}
К сожалению, приведенное выше определение возвращает пустое значение.
Как правильно определить выходные данные в terraform?
Ответ №1:
output_content экспортирует содержимое JSON выходных данных развертывания шаблона ARM.
После моей проверки вы можете вывести содержимое с помощью
output "db_name" {
value = azurerm_resource_group_template_deployment.my_rm.output_content
}
Затем запустите terraform apply
, вы увидите результат вывода, затем вы можете изменить, чтобы отфильтровать результат с помощью
output "db_name" {
value = jsondecode(azurerm_resource_group_template_deployment.my_rm.output_content).db_name.value
}
Пожалуйста, обратите внимание, что db_name
это не то же самое объявление db_name
в вашем коде terraform, оно действительно должно соответствовать ключу вывода JSON на первом шаге выше.
Например,
Комментарии:
1. К сожалению, если вы добавите оба вывода одновременно
terraform plan
, это не сработает. Посмотрите на это: github.com/hashicorp/terraform/issues/29292