Устранение неполадок приложений 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"
- Убедитесь, что приложение имеет необходимую структуру папок с host.json в корне и папке для каждой функции, содержащей файл function.json .
Запрос 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.