terraform - azurerm_resource_group_template_deployment 创建的资源未检测到差异
问题描述
Terraform v0.14.7
+ provider registry.terraform.io/hashicorp/azurerm v2.44.0
我遇到了通过 azurerm_resource_group_template_deployment 创建的资源的问题。我有一些带有虚拟路径的 Web 应用程序,这些虚拟路径是由 azurerm_resource_group_template_deployment 创建的。如果我转到 Azure 门户并删除 Web 应用程序,然后运行 terraform apply 以重新创建这些资源,则 Web 应用程序创建得很好,但虚拟路径不是。Terraform 似乎没有检测到这些缺失的虚拟路径。我已经在 Github 上提交了一个问题,但维护人员已将其标记为问题,所以我不确定我是否会在那里得到回复。
以前有没有其他人注意到这个问题?我认为 Terraform 将能够检测差异并应用缺失的内容。如果我将这些资源标记为受污染,Terraform 甚至无法销毁它们。我收到此错误:
Error: removing items provisioned by this Template Deployment: deleting Nested Resource "/subscriptions/000-000-000-000/resourceGroups/rg/providers/Microsoft.Web/sites/api/slots/staging/config/web": pollingTrackerBase#updateRawBody: failed to unmarshal response body: StatusCode=0 -- Original Error: invalid character '<' looking for beginning of value
这是地形配置
resource "azurerm_resource_group_template_deployment" "api_virtual_directory" {
name = "api_virtual_directory"
resource_group_name = azurerm_resource_group.digital.name
deployment_mode = "Incremental"
template_content = <<TEMPLATE
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"webAppName": {
"type": "String",
"defaultValue": "${module.webapp["api"].name}"
},
"virtualApplications":{
"type": "Array",
"defaultValue":[
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false,
"virtualDirectories": null
},
{
"virtualPath": "/app1",
"physicalPath": "site\\wwwroot\\app1",
"preloadEnabled": false,
"virtualDirectories": null
},
{
"virtualPath": "/app2",
"physicalPath": "site\\wwwroot\\app2",
"preloadEnabled": false,
"virtualDirectories": null
}
]
}
},
"resources": [
{
"type": "Microsoft.Web/sites/config",
"name": "[concat(parameters('webAppName'), '/web')]",
"apiVersion": "2020-06-01",
"properties": {
"virtualApplications": "[parameters('virtualApplications')]"
}
}
]
}
TEMPLATE
depends_on = [module.webapp["api"]]
}
解决方案
推荐阅读
- amazon-web-services - 启动 CloudHSM 的 CF 模板时出错
- charts - 创建后如何重命名掌舵图?
- typescript - 隐式转换无法处理对象键中的空格和非法字符
- python - 从一个矩阵定义一个对角矩阵,其中包含子对角线的乘积
- javascript - 如何从带有参数的代码中运行量角器?
- mongodb - 如何使用 MOQ 或 FakeItEasy 或 Pose 在 .Net 单元测试用例中模拟或伪造 MongoDB 的静态方法 FindAsync()
- google-apps-script - 单击每个单元格时,谷歌工作表会显示“计算公式”栏
- reactjs - 选择元素和默认选项
- python - 如何使用python脚本检查进程是否在linux中运行
- python - Pylint 抛出 str.decode 中使用的非文本编码