Начиная с прошлой ночи, я получаю сообщение об ошибке при развертывании моего веб-приложения на 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» в объекте «hostingEnvironment Profile».

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 / вопросы / 5884

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

5
Enrico 26 Фев 2020 в 12:14

2 ответа

Лучший ответ

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

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

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

2
Enrico 24 Мар 2020 в 10:26

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

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

0
Rikki 28 Фев 2020 в 18:18