Я пытаюсь использовать terraform и встроенные шаблоны ARM, чтобы разрешить создание простого логического приложения в Azure. У меня есть блок ресурсов в терраформе как:
resource "azurerm_resource_group_template_deployment" "templateTEST" {
name = "arm-Deployment"
resource_group_name = azurerm_resource_group.rg.name
deployment_mode = "Incremental"
template_content = file("${path.module}/arm/createLogicAppsTEST.json")
parameters_content = jsonencode({
logic_app_name = { value = "logic-${var.prefix}" }
})
}
и файл createLogicAppsTEST.json
определяется (только несколько верхних строк как)
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"logic_app_name": {
"defaultValue": "tsa-logic-dgtlbi-stage-001",
"type": "string"
}
},
"variables": {},
"resources": [
{
....
При первом развертывании и запуске, т.е. создавая ресурс приложения логики с использованием terraform и встроенного шаблона ARM, он создаст правильную передачу имени с учетом:
parameters_content = jsonencode({
logic_app_name = { value = "logic-${var.prefix}" }
})
однако, если я когда-нибудь снова запускаю, terraform, похоже, игнорирует параметры, которые я передаю, и идет со значением по умолчанию из шаблона ARM как:
"logic_app_name": {
"defaultValue": "tsa-logic-dgtlbi-stage-001",
"type": "string"
}
Я обновил до последней версии как terraform (0.14.2), так и azurerm (2.40.0), но проблема не устранена. В настоящее время это делает ARM проблематичной, поскольку разные уровни разработки, тестирования и производства в моей компании имеют разные префиксы и имена, т. Е. prod-, dev-.
Есть ли настройка, чтобы терраформ действительно использовал параметры, которые я передаю с блоком ресурсов azurerm_resource_group_template_deployment?