5

从昨晚开始,我在使用 Terraform 将我的 Web 应用程序部署到 azure 时出现错误:

Error creating/updating App Service Plan "test-euw-asp" (Resource Group "test-middle-euw-rg"): web.AppServicePlansClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="LinkedInvalidPropertyId" Message="Property id '' at path 'properties.hostingEnvironmentProfile.id' is invalid. Expect fully qualified resource Id that start with '/subscriptions/{subscriptionId}' or '/providers/{resourceProviderNamespace}/'."

看起来它正在“hostingEnvironmentProfile”对象中发送一个空的“id”。

2020-02-25T15:31:56.0433755Z 2020-02-25T15:31:56.041Z [DEBUG] plugin.terraform-provider-azurerm_v1.44.0_x4.exe: {"kind":"Windows","location":"westeurope","properties":{"hostingEnvironmentProfile":{"id":""},"perSiteScaling":false,"maximumElasticWorkerCount":1,"reserved":false,"isXenon":false},"sku":{"name":"S1","tier":"standard","size":"S1","capacity":1},"tags":{}}

我确实将提供程序版本设置为 1.44.0

provider "azurerm" {
  version = "~>1.44.0"
}

我的地形配置

resource "azurerm_resource_group" "rg" {
    name = var.ResourceGroupNameApp
    location = "West europe"
}

resource "azurerm_app_service_plan" "asp" {
    name = var.asp-name
    resource_group_name = azurerm_resource_group.rg.name
    location = azurerm_resource_group.rg.location
    kind = "Windows"

    sku {
        size = var.asp-sku-size
        tier = var.asp-sku-tier
    }
}

我没有在任何地方使用托管环境。有人有同样的问题吗?我确实在 Terraform github 上提交了支持票: https ://github.com/terraform-providers/terraform-provider-azurerm/issues/5884

但是有人知道解决方法吗?

4

2 回答 2

2

所以基本上这个问题是由提供程序中的错误引起的。一种解决方法可能是删除所有内容并重新创建它。(正如 Rikki 所建议的那样)但是没有什么可以保证您将来不会再遇到同样的问题...删除资源也不理想,当然不是在生产环境中...

我做了什么:我在发布管道中禁用了“terraform apply”步骤(因为已经创建了资源)。所以我们只需要部署我们的应用服务并更新我们的数据库。

这个问题只会在下一个版本中修复。所以我建议升级到新版本。 https://github.com/terraform-providers/terraform-provider-azurerm/pull/5915#issuecomment-594357740

于 2020-03-04T08:11:12.273 回答
0

我让我们畅通无阻的临时解决方案是手动删除受影响的资源,然后在 1.44 重新运行 terraform。幸运的是,这只是影响了我们的开发环境。

这不太理想,但如果您完全陷入困境,并且暂时删除您的应用服务是安全的,然后重新创建它,这可能会对您有所帮助!

于 2020-02-28T18:18:50.240 回答