Функция Azure завершается сбоем из-за ошибки: неправильное имя пользователя или пароль: C:\host\LogFiles\Application\Function\Host

Получение следующей ошибки в приложении-функции на портале Azure: Неверное имя пользователя или пароль: C:\host\LogFiles\Application\Function\Host.

Мы создали функциональное приложение, которое входило в план потребления, но переключили его на выделенный хост — P3V2, чтобы использовать аутентификацию на основе MSI с учетной записью хранения. Мы удалили переменные AzureWebJobsStorage, WEBSITE_CONTENTSHARE и WEBSITE_CONTENTAZUREFILECONNECTIONSTRING и вместо этого добавили AzureWebJobsStorage__accountName, содержащее имя учетной записи хранения. Мы предоставили следующие разрешения в учетной записи хранения:

И получаю следующую ошибку:

Что мне здесь не хватает?


Вместо того, чтобы вручную вносить все изменения, я внес изменения в артефакты (шаблоны ARM) и снова развернул все ресурсы, после чего эта проблема исчезла, но возникла другая проблема.

Мы развернули следующий файл бицепса для функции Azure:

param functionAppName string

@description('Packaged build')
param servicePackageLink string = ''

@description('App service hosting plan id')
param hostingPlanId string

@description('Allows user to target a region other than the resource group region.')
param location string = resourceGroup().location

@description('Additional configs to be set in the function enviroment variable')
param configs array = []

param storageAccountName string

param storageAccountId string

@secure()
param appInsightsInstrumentationKey string

// Service Configurations
// -----------------------------------------------------------------------------------------------

var defaultAzureFunctionsConfigs = [
  {
    name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
    value: appInsightsInstrumentationKey
  }
  {
    name: 'AzureWebJobsStorage__accountName'
    value: '${storageAccountName}'
  }
  {
    name: 'FUNCTIONS_EXTENSION_VERSION'
    value: '~4'
  }
  {
    name: 'FUNCTIONS_WORKER_RUNTIME'
    value: 'dotnet'
  }
  {
    name: 'WEBSITE_RUN_FROM_PACKAGE'
    value: '0'
  }
  {
    name: 'WEBSITE_FIRST_PARTY_ID'
    value: 'AntMDS'
  }
  {
    name: 'WEBSITE_LOAD_USER_PROFILE'
    value: '1'
  }
  // WEBSITE_CONTENTSHARE will also be auto-generated - https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings#website_contentshare
  // WEBSITE_RUN_FROM_PACKAGE will be set to 1 by func azure functionapp publish
]

// Resources
// -----------------------------------------------------------------------------------------------


resource functionApp 'Microsoft.Web/sites@2020-06-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp'
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    httpsOnly: true
    serverFarmId: hostingPlanId
    clientAffinityEnabled: true
    siteConfig: {
      alwaysOn: false
      appSettings: concat(defaultAzureFunctionsConfigs, configs)
      minTlsVersion: '1.2'
    }
  }
}

resource zipDeploy 'Microsoft.Web/sites/extensions@2022-03-01' = {
  parent: functionApp
  name: 'MSDeploy'
  properties: {
    packageUri: servicePackageLink
    appOffline: true
  }
}
// Outputs
// -----------------------------------------------------------------------------------------------

output ResourceId string = functionApp.id
output FunctionAppName string = functionApp.name
output PrincipalId string = functionApp.identity.principalId

Используемый план обслуживания — P3V2. Развертывание происходит успешно, но приложение-функция не запускается.

На портале Azure выдается следующая ошибка:

Конфигурация для функции Azure:

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
144
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В плане обслуживания выделенных приложений WEBSITE_CONTENTSHARE, WEBSITE_CONTENTAZUREFILECONNECTIONSTRING не требуется.

В этом параметре приложения используются файлы Azure, которые не поддерживают управляемое удостоверение, как указано в этом MSDos.

AzureWebJobsStorage можно использовать с управляемой идентификацией.

  • Назначьте разные роли для разных целей, как указано в MSDocs.
  • Используйте AzureWebJobsStorage__blobServiceUri, если вы используете URL-адрес учетной записи хранения https://<accountName>.blob.core.windows.net.
  • Как упоминалось в MSDocs, если вы используете DNS-суффикс по умолчанию, вы можете напрямую использовать имя учетной записи, используя AzureWebJobsStorage__accountName.

OUTPUT:

Как вы можете видеть, мой триггер таймера, для выполнения которого требуется значение AzureWebJobsStorage, работает отлично.

Я выполнил те же действия, но все еще получаю вышеупомянутые ошибки.

ASW 05.06.2024 21:39

@ASW просто подтверждаю: включили ли вы идентификацию, управляемую системой, в своей функции? и назначили роли этому управляемому удостоверению в учетной записи хранения? сообщение об ошибке предполагает, что проблема связана с доступом.

Vivek Vaibhav Shandilya 06.06.2024 04:06

Да, я включил его. Я также обновил вышеуказанную проблему с учетом достигнутого мною прогресса.

ASW 06.06.2024 07:53

@ASW поделитесь подробностями вашего кода и переменных среды

Vivek Vaibhav Shandilya 06.06.2024 08:06

Я обновил вышеуказанную проблему с помощью кода и переменных.

ASW 06.06.2024 10:33

@ASW вы развертываете свою функцию в формате zip, поэтому вам нужно установить WEBSITE_RUN_FROM_PACKAGE на 1, чтобы загрузить функцию на портал.

Vivek Vaibhav Shandilya 06.06.2024 10:49

Давайте продолжим обсуждение в чате.

ASW 06.06.2024 16:17
Ответ принят как подходящий

Ошибка была устранена после обновления версии DurableTask до >= 2.7.0.

Другие вопросы по теме

Похожие вопросы

Невозможно получить DurableClient в изолированной dotnet функции для устойчивой обработки объектов
Приложение-функция Azure (python). Повторная попытка с timer_trigger не работает
Как удалить старые версии виртуальной машины с помощью az cli?
Транскрипция стереомикса (выход динамика) с помощью службы речи Azure AI выполняется очень медленно с потоками?
Создайте политику WAF, чтобы разрешить только нагрузочное тестирование Azure или службы Azure
Центр развертывания службы приложений Azure — что делает «Отключение» и как «повторно подключиться»?
Как использовать createUploadSession из Microsoft Graph с веб-API ASP.NET Core
Terraform formatdate и постоянные обновления временных меток
Действие копирования Logic Apps дает следующее: Управляемое удостоверение, используемое в этой операции, больше не существует. Чтобы продолжить, настройте личность или измените соединение
Получение 404 от клиента Cosmosdb ReadItemAsync в .net