【发布时间】:2021-03-23 06:03:02
【问题描述】:
我正在尝试使用 terraform 和嵌入式 ARM 模板来允许在 Azure 中创建一个简单的逻辑应用程序。我在 terraform 中的资源块为:
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) 的最新版本,但问题仍然存在。目前,鉴于我公司的不同层级、dev、test 和 prod 具有不同的前缀和名称,这种情况使得 ARM 在 terraform 中存在问题,即。 prod-, dev-。
是否有设置让 terraform 实际使用我通过 azurerm_resource_group_template_deployment 资源块传递的参数?
【问题讨论】:
标签: terraform arm-template terraform-provider-azure azure-rm