Проблема при развертывании функционального приложения Azure powershell с помощью terraform

#azure #powershell #azure-functions #terraform #azure-blob-trigger

#azure #powershell #azure-функции #terraform #azure-blob-триггер

Вопрос:

Я столкнулся с приведенной ниже ошибкой с помощью триггера Azure function app blob, развернутого с помощью terraform

D:a1ssrcRequestProcessor.cs:line 196 2021-01-08T14:24:46.222 [Ошибка] Выполненные функции.BlobTrigger1′ (сбой, идентификатор = 973f1e27-3dc2-43d3-9463- 7cac64bf56b7, длительность = 6625 мс) Результат: исключение FailureException: не удалось установить зависимости приложения функции. Ошибка: ‘Нет ‘requirements.psd1’ найден в корневой папке приложения функции: C:homesitewwwroot .

Я использовал это https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/function_app для создания кода terraform, используя приведенный выше документ и другие ссылки в Google, я написал приведенный ниже код на main.tf

 app_settings = {
        FUNCTIONS_WORKER_RUNTIME = var.FUNCTIONS_WORKER_RUNTIME
        FUNCTIONS_WORKER_RUNTIME_VERSION = var.FUNCTIONS_WORKER_RUNTIME_VERSION
 

Присвоена переменная в переменной.tf, как показано ниже

 variable "FUNCTIONS_WORKER_RUNTIME"{
    default = "PowerShell" 
}

variable "FUNCTIONS_WORKER_RUNTIME_VERSION" {
    default = "~7"
}
 

Но по-прежнему не удалось увидеть основную версию PowerShell в приложении.

Комментарии:

1. Какую версию Terraform вы используете? Весь код отлично работает на моей стороне.

Ответ №1:

После моей проверки вы можете установить значение FUNCTIONS_WORKER_RUNTIME to "powershell" вместо "PowerShell" и добавить version = "~3" . Он автоматически установит зависимости приложения функций requirements.psd1 .

 resource "azurerm_function_app" "example" {
  name                       = "urewwwwfunctiona"
  location                   = azurerm_resource_group.example.location
  resource_group_name        = azurerm_resource_group.example.name
  app_service_plan_id        = azurerm_app_service_plan.example.id
  storage_account_name       = azurerm_storage_account.example.name
  storage_account_access_key = azurerm_storage_account.example.primary_access_key

  app_settings = {
        FUNCTIONS_WORKER_RUNTIME = "powershell"
        FUNCTIONS_WORKER_RUNTIME_VERSION = "~7"
       
  }

  version = "~3"

}
 

введите описание изображения здесь

введите описание изображения здесь

Ответ №2:

Привет, мне удалось развернуть функциональное приложение Powershell в Azure с помощью azurerm_function_app, но базовая версия Powershell пуста.

Я последовал предложению Нэнси Сюн, но безуспешно:

 resource "azurerm_function_app" "example" {
  name                       = "functionapptest"
  location                   = azurerm_resource_group.example.location
  resource_group_name        = azurerm_resource_group.example.name
  app_service_plan_id        = azurerm_app_service_plan.example.id
  storage_account_name       = azurerm_storage_account.example.name
  storage_account_access_key = azurerm_storage_account.example.primary_access_key
  version = "~3"
  app_settings = {
        FUNCTIONS_WORKER_RUNTIME = "powershell"
        FUNCTIONS_WORKER_RUNTIME_VERSION = "~7"
       
  }
}
 

Мне удалось установить версию Python для функционального приложения Linux с помощью linux_fx_version, но я хочу сделать то же самое для Powershell:

 site_config {
    linux_fx_version = "PYTHON|3.9"
}
 

В документации Terraform неясно, что такое функциональные приложения Powershell.