Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Der Inhalt dieses Artikels ändert sich abhängig von dem Node.js-Programmiermodell, das Sie oben auf der Seite ausgewählt haben. Das v4-Modell ist allgemein verfügbar und bietet JavaScript- und TypeScript-Entwicklern eine flexiblere und intuitivere Erfahrung. Weitere Informationen zu den Unterschieden zwischen v3 und v4 finden Sie im Migrationsleitfaden.
Dieser Artikel enthält eine Anleitung zur Problembehandlung allgemeiner Szenarien in Node.js Funktions-Apps.
Die Registerkarte "Diagnose und Lösung von Problemen" im Azure-Portal ist eine nützliche Ressource, um mögliche Probleme im Zusammenhang mit Ihrer Anwendung zu überwachen und zu diagnostizieren. Es liefert auch potenzielle Lösungen für Ihre Probleme basierend auf der Diagnose. Weitere Informationen finden Sie unter Azure Funktions-App-Diagnose.
Eine weitere nützliche Ressource ist die Registerkarte "Protokolle" im Azure-Portal für Ihre Application Insights-Instanz, sodass Sie benutzerdefinierte KQL-Abfragen ausführen können. Die folgende Beispielabfrage zeigt, wie Fehler und Warnungen für Ihre App am letzten Tag angezeigt werden:
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
Wenn diese Ressourcen Ihr Problem nicht gelöst haben, finden Sie in den folgenden Abschnitten Hinweise zu bestimmten Anwendungsproblemen:
Keine Funktionen gefunden
Wenn in Ihren Protokollen eine der folgenden Fehler angezeigt wird:
Es wurden keine HTTP-Trigger gefunden.
Keine Jobfunktionen gefunden. Versuchen Sie, Ihre Jobklassen und Methoden als öffentlich zu deklarieren. Wenn Sie Bindungserweiterungen (z. B. Azure Storage, ServiceBus, Timers usw.) verwenden, stellen Sie sicher, dass Sie in Ihrem Startcode die Registrierungsmethode für die Erweiterung(en) aufgerufen haben (z. B. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers() usw.).
Probieren Sie die folgenden Korrekturen aus:
- Stellen Sie bei der lokalen Ausführung sicher, dass Sie Azure Functions Core Tools v4.0.5382 oder höher verwenden.
- Beim Ausführen in Azure:
Stellen Sie sicher, dass Sie Azure Functions Runtime Version 4.25 oder höher verwenden.
Stellen Sie sicher, dass Sie Node.js v18 oder höher verwenden.
Legen Sie die App-Einstellung
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERRORauftrue. Diese Einstellung wird für alle Modell-v4-Apps empfohlen und stellt sicher, dass alle Einstiegspunktfehler in Ihren Anwendungserkenntnisse-Protokollen sichtbar sind. Weitere Informationen finden Sie unter App-Einstellungsreferenz für Azure Functions.Überprüfen Sie die Protokolle Ihrer Funktions-App auf Fehler beim Einstiegspunkt. Die folgende Beispielabfrage zeigt, wie Sie Fehler am Einstiegspunkt Ihrer App im vergangenen Tag anzeigen:
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"
- Stellen Sie sicher, dass Ihre App über die erforderliche Ordnerstruktur mit einem host.json im Stammverzeichnis und einem Ordner für jede Funktion verfügt, die eine function.json Datei enthält.
Undici-Anforderung ist kein Konstruktor
Wenn der folgende Fehler in den Protokollen Ihrer Function App erscheint:
System.Private.CoreLib: Ausnahme beim Ausführen der Funktion: Functions.httpTrigger1. System.Private.CoreLib: Ergebnis: Ausnahmefehler: undici_1.Request ist kein Konstruktor
Stellen Sie sicher, dass Sie Node.js Version 22.x oder höher verwenden.
Fehler beim Erkennen der Azure Functions Laufzeit
Wenn der folgende Fehler in den Protokollen Ihrer Function App erscheint:
WARNUNG: Fehler beim Erkennen der Azure Functions Laufzeit. Wechseln des Pakets "@azure/Funktionen" zum Testmodus – nicht alle Features werden unterstützt.
Überprüfen Sie Ihre Datei package.json auf einen Verweis auf applicationinsights und stellen Sie sicher, dass die Version ^2.7.1 oder höher ist. Führen Sie nach dem Aktualisieren der Version npm install aus
HTTP-Streams funktionieren nicht
Wenn HTTP-Streaming nicht funktioniert:
- Überprüfen Sie, ob
@azure/functionsdie Paketversion 4.3.0 oder neuer ist. - Stellen Sie sicher, dass die Laufzeitversion von Azure Functions Version 4.28 oder neuer ist.
- Prüfen Sie, ob
app.setup({ enableHttpStream: true })aufgerufen wird. - Verifizieren
FUNCTIONS_REQUEST_BODY_SIZE_LIMITist für große Daten entsprechend eingestellt.
Hooks werden nicht ausgeführt
Wenn Ihre Hooks nicht ausgeführt werden:
- Bestätige, dass du das Programmiermodell v4 verwendest.
- Überprüfen Sie die Hook-Registrierungssyntax:
app.hook.preInvocation()oderapp.hook.appStart(). - Achte darauf, dass du Hooks vor Funktionsdefinitionen registrierst.
- Überprüfe die Trigger-Filterung, ob Hooks nur für bestimmte Funktionstypen laufen sollten.
Probleme mit der TypeScript-Kompilierung
Für TypeScript-spezifische Probleme:
Baufehler:
- Überprüfen Sie, ob
tsconfig.jsonkorrekt auf Ihre Build-Ausgabe mitoutDirverweist. - Stelle sicher, dass
scriptFileim v3-Modell auf kompilierte.js-Dateien verweist, nicht auf.ts - Überprüfen Sie, dass alle TypeScript-Abhängigkeiten installiert sind:
npm install --save-dev typescript @types/node
Typfehler:
- Update-Paket
@azure/functionsfür die neuesten Typdefinitionen - Verwenden Sie geeignete Importe:
import { app, HttpRequest, InvocationContext } from '@azure/functions' - Überprüfen Sie, ob Funktionssignaturen mit erwarteten Typen übereinstimmen
Probleme der Modulauflösung
Modulfehler werden nicht gefunden:
- Führen Sie
npm installaus, um sicherzustellen, dass alle Abhängigkeiten installiert sind - Der Kontrollordner
node_modulesexistiert im Bereitstellungspaket - Für ES-Module sollte sichergestellt werden, dass Dateinamen die Erweiterung
.mjshaben oder dasspackage.jsonauf"type": "module"gesetzt ist. - Überprüfen Sie nach der TypeScript-Kompilierung die korrekten relativen Importpfade
Umwelt- und Konfigurationsprobleme
Fehlende Umweltvariablen:
- Fügen Sie Variablen für die lokale Entwicklung hinzu
local.settings.json - Setze Anwendungseinstellungen im Azure Portal für Cloud-Bereitstellung
- Verwendung
process.env["VARIABLE_NAME"]zum Zugriff auf Werte
Logging-Probleme:
- Verwenden
context.log()stattconsole.log()für funktionsspezifische Logs - Prüfen Sie, ob Application Insights Verbindungszeichenfolge konfiguriert ist
- Überprüfen Sie die Log-Levels in
host.jsonzum Filtern
Hilfe von Microsoft
Sie erhalten weitere Hilfe von Microsoft auf eine der folgenden Arten:
- Durchsuchen Sie die bekannten Probleme im Azure Functions Node.js Repository. Wenn Ihr Problem nicht erwähnt wird, erstellen Sie ein neues Problem, und teilen Sie uns mit, was passiert ist.
- Wenn Sie Ihr Problem mithilfe dieses Handbuchs nicht diagnostizieren können, stehen Microsoft Supporttechniker zur Verfügung, um Probleme mit Ihrer Anwendung zu diagnostizieren. Microsoft bietet verschiedene Supportpläne an. Erstellen Sie ein Supportticket im Abschnitt "Support + Problembehandlung" ihrer Funktions-App-Seite im Azure-Portal.
Nächste Schritte
Microsoft Q&A-Seite für Azure Functions - Azure Functions Node.js-Entwicklerreferenz