Rozwiązywanie problemów z aplikacjami Node.js w usłudze Azure Functions

Ważne

Zawartość tego artykułu zmienia się w zależności od wybranego modelu programowania Node.js w selektorze w górnej części strony. Model w wersji 4 jest ogólnie dostępny i ma bardziej elastyczne i intuicyjne środowisko dla deweloperów języka JavaScript i Języka TypeScript. Dowiedz się więcej o różnicach między wersjami 3 i v4 w przewodniku migracji.

Ten artykuł zawiera przewodnik rozwiązywania problemów z typowymi scenariuszami w aplikacjach funkcji Node.js.

Karta Diagnozowanie i rozwiązywanie problemów w witrynie Azure Portal to przydatny zasób do monitorowania i diagnozowania możliwych problemów związanych z aplikacją. Dostarcza również potencjalne rozwiązania problemów na podstawie diagnozy. Aby uzyskać więcej informacji, zobacz Diagnostyka aplikacji funkcji platformy Azure.

Innym przydatnym zasobem jest karta Dzienniki w witrynie Azure Portal dla wystąpienia usługi Application Szczegółowe informacje, dzięki czemu można uruchamiać niestandardowe zapytania KQL. Poniższe przykładowe zapytanie pokazuje, jak wyświetlać błędy i ostrzeżenia dla aplikacji w ciągu ostatniego dnia:

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

Jeśli te zasoby nie rozwiązały problemu, w poniższych sekcjach przedstawiono porady dotyczące określonych problemów z aplikacjami:

Nie znaleziono funkcji

Jeśli w dziennikach są widoczne jakiekolwiek z następujących błędów:

Nie znaleziono żadnych wyzwalaczy HTTP.

Nie znaleziono funkcji zadania. Spróbuj upublicznić klasy zadań i metody. Jeśli używasz rozszerzeń powiązań (np. Azure Storage, ServiceBus, Timers itp.), upewnij się, że wywołaliśmy metodę rejestracji rozszerzeń w kodzie uruchamiania (np. konstruktora). DodajAzureStorage(), konstruktor. AddServiceBus(), konstruktor. AddTimers(), itp.).

Wypróbuj następujące poprawki:

  • Podczas uruchamiania lokalnego upewnij się, że używasz narzędzi Azure Functions Core Tools w wersji 4.0.5382 lub nowszej.
  • Podczas uruchamiania na platformie Azure:
    • Upewnij się, że używasz środowiska uruchomieniowego usługi Azure Functions w wersji 4.25 lub nowszej.

    • Upewnij się, że używasz środowiska Node.js w wersji 18 lub nowszej.

    • Ustaw ustawienie FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR aplikacji na true. To ustawienie jest zalecane dla wszystkich aplikacji modelu w wersji 4 i zapewnia, że wszystkie błędy punktu wejścia są widoczne w dziennikach usługi Application Insights. Aby uzyskać więcej informacji, zobacz Dokumentacja ustawień aplikacji dla usługi Azure Functions.

    • Sprawdź dzienniki aplikacji funkcji pod kątem błędów punktu wejścia. Poniższe przykładowe zapytanie pokazuje, jak wyświetlić błędy punktu wejścia dla aplikacji w ciągu ostatniego dnia:

      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"
      
  • Upewnij się, że aplikacja ma wymaganą strukturę folderów z plikiem host.json w katalogu głównym i folderem dla każdej funkcji zawierającej plik function.json .

Żądanie undici nie jest konstruktorem

Jeśli wystąpi następujący błąd w dziennikach aplikacji funkcji:

System.Private.CoreLib: Wyjątek podczas wykonywania funkcji: Functions.httpTrigger1. System.Private.CoreLib: Result: Failure Exception: undici_1.Request nie jest konstruktorem

Upewnij się, że używasz środowiska Node.js w wersji 18.x lub nowszej.

Nie można wykryć środowiska uruchomieniowego usługi Azure Functions

Jeśli wystąpi następujący błąd w dziennikach aplikacji funkcji:

OSTRZEŻENIE: Nie można wykryć środowiska uruchomieniowego usługi Azure Functions. Przełączanie pakietu "@azure/functions" na tryb testowy — nie wszystkie funkcje są obsługiwane.

Sprawdź plik package.json pod kątem odwołania i applicationinsights upewnij się, że wersja jest ^2.7.1 lub nowsza. Po zaktualizowaniu wersji uruchom polecenie npm install

Uzyskaj pomoc od firmy Microsoft

Możesz uzyskać więcej pomocy od firmy Microsoft na jeden z następujących sposobów:

  • Wyszukaj znane problemy w repozytorium Node.js usługi Azure Functions. Jeśli nie widzisz wymienionego problemu, utwórz nowy problem i poinformuj nas o tym, co się stało.
  • Jeśli nie możesz zdiagnozować problemu, korzystając z tego przewodnika, inżynierowie pomocy technicznej firmy Microsoft są dostępni, aby ułatwić diagnozowanie problemów z aplikacją. Firma Microsoft oferuje różne plany pomocy technicznej. Utwórz bilet pomocy technicznej w sekcji Pomoc techniczna i rozwiązywanie problemów na stronie aplikacji funkcji w witrynie Azure Portal.

Następne kroki