Dela via


Felsöka Node.js-appar i Azure Functions

Viktigt!

Innehållet i den här artikeln ändras baserat på ditt val av node.js-programmeringsmodellen i väljaren överst på sidan. V4-modellen är allmänt tillgänglig och är utformad för att ha en mer flexibel och intuitiv upplevelse för JavaScript- och TypeScript-utvecklare. Läs mer om skillnaderna mellan v3 och v4 i migreringsguiden.

Den här artikeln innehåller en guide för felsökning av vanliga scenarier i Node.js-funktionsappar.

Fliken Diagnostisera och lösa problem i Azure-portalen är en användbar resurs för att övervaka och diagnostisera eventuella problem som rör ditt program. Det ger också potentiella lösningar på dina problem baserat på diagnosen. Mer information finns i Diagnostik för Azure-funktionsappar.

En annan användbar resurs är fliken Loggar i Azure-portalen för Application Insights-instansen så att du kan köra anpassade KQL-frågor. Följande exempelfråga visar hur du visar fel och varningar för din app under den senaste dagen:

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

Om dessa resurser inte löste problemet ger följande avsnitt råd om specifika programproblem:

Inga funktioner hittades

Om du ser något av följande fel i loggarna:

Inga HTTP-utlösare hittades.

Inga jobbfunktioner hittades. Prova att göra dina jobbklasser och metoder offentliga. Om du använder bindningstillägg (t.ex. Azure Storage, ServiceBus, Timers osv.) kontrollerar du att du har anropat registreringsmetoden för tilläggen i startkoden (t.ex. byggare. Lägg tillAzureStorage(), builder. AddServiceBus(), byggare. AddTimers(), osv.).

Prova följande korrigeringar:

  • När du kör lokalt kontrollerar du att du använder Azure Functions Core Tools v4.0.5382 eller senare.
  • När du kör i Azure:
    • Kontrollera att du använder Azure Functions Runtime Version 4.25 eller senare.

    • Kontrollera att du använder Node.js v18 eller senare.

    • Ange appinställningen FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR till true. Den här inställningen rekommenderas för alla modell v4-appar och ser till att alla startpunktsfel visas i application insights-loggarna. Mer information finns i Referens för appinställningar för Azure Functions.

    • Kontrollera om det finns startpunktsfel i funktionsappens loggar. Följande exempelfråga visar hur du visar startpunktsfel för din app under den senaste dagen:

      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"
      
  • Kontrollera att din app har den mappstruktur som krävs med en host.json i roten och en mapp för varje funktion som innehåller en function.json-fil .

Undici-begäran är inte en konstruktor

Om du får följande fel i funktionsapploggarna:

System.Private.CoreLib: Undantag vid körning av funktion: Functions.httpTrigger1. System.Private.CoreLib: Result: Failure Exception: undici_1.Request är inte en konstruktor

Kontrollera att du använder Node.js version 18.x eller senare.

Det gick inte att identifiera Azure Functions-körningen

Om du får följande fel i funktionsapploggarna:

VARNING! Det gick inte att identifiera Azure Functions-körningen. Växla paketet "@azure/functions" till testläge – alla funktioner stöds inte.

Kontrollera filen package.json för en referens till och kontrollera att applicationinsights versionen är ^2.7.1 eller högre. När du har uppdaterat versionen kör du npm install

Få hjälp från Microsoft

Du kan få mer hjälp från Microsoft på något av följande sätt:

  • Sök efter kända problem på Azure Functions Node.js-lagringsplatsen. Om du inte ser ditt problem som nämns skapar du ett nytt problem och meddelar oss vad som har hänt.
  • Om du inte kan diagnostisera problemet med hjälp av den här guiden är Microsofts supporttekniker tillgängliga för att diagnostisera problem med ditt program. Microsoft erbjuder olika supportplaner. Skapa ett supportärende i avsnittet Support + felsökning på funktionsappsidan i Azure-portalen.

Nästa steg