Terraform: Code = "LinkedInvalidPropertyId" Message = "Идентификатор свойства" в пути "properties.hostingEnvironmentProfile.id 'недопустим - PullRequest
5 голосов
/ 26 февраля 2020

Со вчерашнего вечера я получаю сообщение об ошибке при развертывании моего веб-приложения на azure с использованием Terraform:

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}/'."

Похоже, что оно отправляет пустой "id" в объекте "hostingEnvironmentProfile".

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"
}

Моя конфигурация terraform

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
    }
}

Я нигде не использую среду хостинга. У кого-то есть такая же проблема? Я отправил заявку в службу поддержки на github Terraform: https://github.com/terraform-providers/terraform-provider-azurerm/issues/5884

Но кто-нибудь знает обходной путь?

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Так что в основном эта проблема вызвана ошибкой в ​​провайдере. Обходным путем может быть удаление всего и повторное его создание. (как предложено Рикки) Но ничто не гарантирует, что вы не столкнетесь с той же проблемой в будущем ... Также удаление ресурсов не является идеальным, конечно, не в производственной среде ...

Что Я сделал: я отключил шаг "terraform apply" в моем конвейере выпуска (потому что ресурсы уже были созданы). Таким образом, нам нужно было только развернуть наш сервис приложений и обновить нашу базу данных.

Эта проблема будет исправлена ​​только в следующем выпуске. Так что я бы предложил перейти на новую версию. https://github.com/terraform-providers/terraform-provider-azurerm/pull/5915#issuecomment -594357740

0 голосов
/ 28 февраля 2020

Мое временное решение, чтобы разблокировать нас, состояло в том, чтобы вручную удалить затронутые ресурсы, затем повторно запустить terraform в 1.44. К счастью, это только сказалось на нашей среде разработки.

Это далеко не идеально, но если вы полностью застряли и безопасно временно удалить службу приложения, а затем воссоздать ее, это может помочь вам!

...