#azure #azure-devops #terraform-provider-azure #azure-function-app
#лазурный #azure-devops #terraform-provider-azure #azure-function-app
Вопрос:
Я создал функциональное приложение Azure с помощью Terraform, а затем внедрил в него исходный код функционального приложения через конвейеры Azure DevOps CI и CD.
Затем я развернул сценарии Terraform с некоторыми изменениями, после чего при первом выполнении я получаю следующую ошибку. Но если я повторно переназначил эти сценарии TF, то я не получаю приведенную ниже ошибку:
Ошибка: не удалось создать систему управления версиями службы приложений для «» (группа ресурсов «»): web.AppsClient#CreateOrUpdateSourceControl: Сбой при отправке запроса: StatusCode= 400 — Исходная ошибка: Code = сообщение»BadRequest» =»Операция не поддерживается: RepoUrl VSTSRM не поддерживается». Подробности=[{«Сообщение»:»Операция не поддерживается: RepoUrl VSTSRM не поддерживается supported.»},{«Code»:»BadRequest»},{«ErrorEntity»:{«Code»:»BadRequest»,»ExtendedCode»:»51024″,»Message»:»Operation не поддерживается: RepoUrl VSTSRM не поддерживается.»,»MessageTemplate»:»Операция не поддерживается: {0}»,»Параметры»: [«RepoUrl VSTSRM не поддерживается.»]}}]
Я использую следующую конфигурацию terraform:
terraform {
required_version = ">=0.14"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>2.40.0"
}
}
Файл конфигурации терраформирования функционального приложения:
resource "azurerm_function_app" "function_app" {
name = var.fn_name
resource_group_name = var.rg_name
location = var.location
tags = var.tags
app_service_plan_id = var.app_service_plan_id
storage_account_name = var.sa_name
storage_account_access_key = var.sa_primary_access_key
version = var.runtime_version
enabled = var.enabled
https_only = var.https_only
client_affinity_enabled = var.client_affinity_enabled
app_settings = {
FUNCTIONS_WORKER_RUNTIME = "dotnet"
WEBSITE_NODE_DEFAULT_VERSION = "10.14.1"
FUNCTION_APP_EDIT_MODE = "readonly"
WEBSITE_RUN_FROM_PACKAGE = "1"
APPINSIGHTS_INSTRUMENTATIONKEY = var.instrumentation_key
}
identity {
type = var.identity_type
identity_ids = var.identity_type == "UserAssigned" ? var.identity_ids : null
}
site_config {
always_on = var.always_on
scm_type = "None"
cors {
allowed_origins = var.cors_allowed_origins
support_credentials = var.cors_support_credentials
}
}
lifecycle {
ignore_changes = [
app_settings["WEBSITE_RUN_FROM_PACKAGE"],
site_config["scm_type"]
]
}
}
Шаги для воспроизведения:
- Развертывание конфигурации terraform
- Развертывание кода приложения функции с помощью задачи службы приложений Azure devops
- Внесите изменения в конфигурацию terraform (это может быть даже необязательно)
- Повторное развертывание terraform
Прежде чем опубликовать вопрос здесь, я потратил много времени на эту проблему в Google, а затем нашел несколько статей, связанных с этой проблемой. Но проблема остается той же самой.
временная ошибка azurerm_app_service — «Возврат VSTSRM не поддерживается»
Итак, не могли бы вы, пожалуйста, подсказать мне, как устранить вышеуказанную ошибку.
Комментарии:
1. Вы пробовали добавить site_config { scm_type = «VSTSRM» } ?
2. Похоже, это известная проблема с терраформированием, о которой сообщается здесь: github.com/terraform-providers/terraform-provider-azurerm /… , вы могли бы попробовать обходной путь mattduguid: github.com/terraform-providers/terraform-provider-azurerm /…
3. @AndreyBilous, я пробовал
{ scm_type = "VSTSRM" }
использовать этот вариант. Но проблема не устранена.4. @EdwardHan-MSFT, я попробовал обходной путь mattduguid: github.com/terraform-providers/terraform-provider-azurerm /. … Но проблема та же самая.
5. Похоже, что эта проблема сохраняется в более поздней версии Terraform (версия> = 0.14), мы рекомендуем вам следовать этой теме: github.com/terraform-providers/terraform-provider-azurerm / … чтобы получить последние отзывы о группе продуктов.