Freigeben über


Problembehandlung bei Node.js Apps in Azure Functions

Wichtig

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-Entwickler*innen eine flexiblere und intuitivere Erfahrung. Weitere Informationen zu den Unterschieden zwischen v3 und v4 finden Sie im Migrationshandbuch.

Dieser Artikel enthält einen Leitfaden für die Problembehandlung für gängige Szenarien in Node.js Funktions-Apps.

Die Registerkarte Diagnose und Problembehandlung im Azure-Portal ist eine nützliche Ressource zum Überwachen und Diagnostizieren möglicher Probleme im Zusammenhang mit Ihrer Anwendung. Sie bietet basierend auf der Diagnose auch potenzielle Lösungen für Ihre Probleme. 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, damit 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 Sie Ihr Problem mit diesen Ressourcen nicht beheben konnten, finden Sie in den folgenden Abschnitten Empfehlungen für spezifische Anwendungsprobleme:

Keine Funktionen gefunden

Wenn Sie einen der folgenden Fehler in Ihren Protokollen sehen:

Es wurden keine HTTP-Trigger gefunden.

Es wurden keine Auftragsfunktionen gefunden. Versuchen Sie, Ihre Auftragsklassen und -methoden öffentlich zu machen. Wenn Sie Bindungserweiterungen verwenden (z. B. Azure Storage, ServiceBus, Timer usw.), stellen Sie sicher, dass Sie die Registrierungsmethode für die Erweiterungen in Ihrem Startcode (z. B. builder.AddAzureStorage(), builder.AddServiceBus(), Builder.AddTimers() usw.) aufgerufen haben.

Probieren Sie die folgenden Fehlerbehebungen aus:

  • Stellen Sie bei der lokalen Ausführung sicher, dass Sie Azure Functions Core Tools v4.0.5382 oder höher verwenden.
  • Bei der Ausführung 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_ERROR auf true fest. Diese Einstellung wird für alle v4-Apps des Modells empfohlen und stellt sicher, dass alle Einstiegspunktfehler in Ihren Application Insights-Protokollen sichtbar sind. Weitere Informationen finden Sie unter Referenz zu App-Einstellungen für Azure Functions.

    • Überprüfen Sie ihre Funktions-App-Protokolle auf Einstiegspunktfehler. Die folgende Beispielabfrage zeigt, wie Einstiegspunktfehler 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
      | where message has "entry point"
      
  • Stellen Sie sicher, dass Ihre App über die erforderliche Ordnerstruktur mit einer 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 Funktions-App-Protokollen angezeigt wird:

System.Private.CoreLib: Exception while executing function: Functions.httpTrigger1. System.Private.CoreLib: Result: Failure Exception: undici_1.Request is not a constructor

Stellen Sie sicher, dass Sie Node.js Version 18.x oder höher verwenden.

Fehler beim Erkennen der Azure Functions Runtime

Wenn der folgende Fehler in den Funktions-App-Protokollen angezeigt wird:

WARNUNG: Fehler beim Erkennen der Azure Functions Runtime. Wechseln des Pakets „@azure/functions“ in den 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

Erhalten Sie Hilfe von Microsoft.

Sie können weitere Hilfe von Microsoft auf eine der folgenden Arten erhalten:

  • Suchen 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 nicht mithilfe dieses Handbuchs 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 Support-Ticket im Abschnitt Support + Fehlerbehebung auf der Seite Ihrer Funktionsanwendung im Azure-Portal.

Nächste Schritte