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 natrue
. 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.