Terraform 地形:代码=";LinkedInvalidPropertyId“;消息=";属性id'';在路径';properties.hostingEnvironmentProfile.id';无效

Terraform 地形:代码=";LinkedInvalidPropertyId“;消息=";属性id'';在路径';properties.hostingEnvironmentProfile.id';无效,terraform,terraform-provider-azure,azure-rm,Terraform,Terraform Provider Azure,Azure Rm,从昨晚开始,我在使用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="LinkedInva

从昨晚开始,我在使用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”

我确实将提供程序版本设置为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上提交了支持票证:


但是有人知道一个工作环境吗

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


这不太理想,但如果你完全卡住了,暂时删除你的应用程序服务是安全的,然后重新创建它,这可能会帮助你

因此,这个问题基本上是由提供程序中的错误引起的。一种解决方法是删除所有内容并重新创建。(正如Rikki所建议的)但是没有任何东西可以保证你以后不会再遇到同样的问题。。。此外,删除资源也不理想,在生产环境中肯定不理想

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

此问题将仅在下一版本中修复。所以我建议升级到新版本。

这看起来像一个bug,该定义与示例几乎完全匹配。能否尝试删除
kind=“Windows”
?代码中没有错误,也许你可以尝试删除不必要的东西并初始化,然后再次应用。@charlessu你指的是什么代码?一切不必要的东西都被清除了。我也需要种类字段。我是指状态文件和init目录。您不需要删除种类字段,这没关系。我们在所有terraform脚本中都有完全相同的错误,在使用1.44之前没有问题。我们还尝试了不同的同类值,但没有成功。我有一个假设,即使用azurerm 2.0从头开始创建新资源可能会起作用,但升级现有资源时显然存在缺陷。创建新资源时,我们在尝试更新资源时不会遇到同样的问题吗?恐怕我没有测试过。我的想法是,在azurerm 2.0中更新创建的资源是可行的,但是关于它们是如何在azurerm 1.44中创建的,这使得它们与azurerm 2.0创建/更新它们的方式不兼容。这不太理想!我对此进行了测试,甚至更新使用azurerm 2.0创建的资源也会产生同样的错误。据维护Terraform/azure插件git repo的人员说,这个错误只发生在2.0中。所以我会说删除所有内容,将您的版本更改为1.44,然后尝试重新创建它。
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
    }
}