Устранение неполадок приложений Node.js в Функции Azure

Важно!

Содержимое этой статьи изменяется на основе выбранной модели программирования Node.js в селекторе в верхней части страницы. Модель версии 4 общедоступна и предназначена для более гибкого и интуитивно понятного интерфейса для разработчиков JavaScript и TypeScript. Дополнительные сведения о различиях между версиями 3 и 4 см. в руководстве по миграции.

В этой статье приведено руководство по устранению распространенных сценариев в приложениях-функциях Node.js.

Вкладка "Диагностика и устранение проблем" в портал Azure является полезным ресурсом для мониторинга и диагностики возможных проблем, связанных с приложением. Он также предоставляет потенциальные решения для ваших проблем на основе диагноза. Дополнительные сведения см. в диагностика приложения-функции Azure.

Другим полезным ресурсом является вкладка "Журналы" в портал Azure для экземпляра приложения Аналитика, чтобы можно было выполнять пользовательские запросы KQL. В следующем примере запроса показано, как просмотреть ошибки и предупреждения для приложения за прошлый день:

let myAppName = "<your app name>";
let startTime = ago(1d);
let endTime = now();
union traces,requests,exceptions
| where cloud_RoleName =~ myAppName
| where timestamp between (startTime .. endTime)
| where severityLevel > 2

Если эти ресурсы не решить вашу проблему, в следующих разделах приведены рекомендации по конкретным проблемам с приложениями:

Нет найденных функций

Если в журналах отображается какая-либо из следующих ошибок:

Триггеры HTTP не найдены.

Не найдены функции задания. Попробуйте сделать классы заданий и методы общедоступными. Если вы используете расширения привязки (например, служба хранилища Azure, ServiceBus, Таймеры и т. д.), убедитесь, что вы вызвали метод регистрации для расширений в коде запуска (например, построитель). AddAzure служба хранилища(), построитель. AddServiceBus(), построитель. AddTimers(), etc.).

Попробуйте выполнить следующие исправления:

  • При локальном запуске убедитесь, что вы используете Функции Azure Core Tools версии 4.0.5382 или более поздней версии.
  • При запуске в Azure:
    • Убедитесь, что вы используете среду выполнения Функции Azure версии 4.25 или более поздней.

    • Убедитесь, что вы используете Node.js версии 18 или более поздней версии.

    • Задайте для параметра FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR trueприложения значение . Этот параметр рекомендуется для всех приложений модели версии 4 и гарантирует, что все ошибки точки входа отображаются в журналах Application Insights. Дополнительные сведения см. в статье Справочник по параметрам приложений для Функций Azure.

    • Проверьте журналы приложений-функций для ошибок точки входа. В следующем примере запроса показано, как просмотреть ошибки точки входа для приложения за прошлый день:

      let myAppName = "<your app name>";
      let startTime = ago(1d);
      let endTime = now();
      union traces,requests,exceptions
      | where cloud_RoleName =~ myAppName
      | where timestamp between (startTime .. endTime)
      | where severityLevel > 2
      | where message has "entry point"
      

Запрос undici не является конструктором

Если в журналах приложений-функций возникает следующая ошибка:

System.Private.CoreLib: исключение при выполнении функции: Functions.httpTrigger1. System.Private.CoreLib: результат: исключение сбоя: undici_1.Request не является конструктором

Убедитесь, что вы используете Node.js версии 18.x или более поздней.

Не удалось обнаружить среду выполнения Функции Azure

Если в журналах приложений-функций возникает следующая ошибка:

ПРЕДУПРЕЖДЕНИЕ. Не удалось обнаружить среду выполнения Функции Azure. Переключение пакета "@azure/функций" в режим тестирования — не все функции поддерживаются.

package.json Проверьте файл на ссылку applicationinsights и убедитесь, что версия или ^2.7.1 более поздняя. После обновления версии запустите npm install

Получить помощь от Microsoft

Вы можете получить дополнительную помощь от Корпорации Майкрософт одним из следующих способов:

  • Выполните поиск известных проблем в репозитории Функции Azure Node.js. Если проблема не отображается упоминание, создайте новую проблему и сообщите нам о том, что произошло.
  • Если вы не можете диагностировать проблему с помощью этого руководства, специалисты службы поддержки Майкрософт доступны для диагностики проблем с приложением. Корпорация Майкрософт предлагает различные планы поддержки. Создайте запрос в службу поддержки и устранение неполадок на странице приложения-функции в портал Azure.

Следующие шаги