Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Innehållet i den här artikeln ändras baserat på ditt val av Node.js programmeringsmodell 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 Azure Funktionsappdiagnostik.
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. Försök att göra dina jobbklasser och metoder publika. 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. builder. 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_ERRORtilltrue. 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 referensen 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 request är inte en konstruktorfunktion
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 22.x eller senare.
Det gick inte att identifiera körningsmiljön för Azure Functions
Om du får följande fel i funktionsapploggarna:
VARNING: Det gick inte att identifiera Azure Functions-körmiljön. Växla paketet "@azure/functions" till testläge – alla funktioner stöds inte.
Kontrollera filen package.json för en referens till applicationinsights och kontrollera att versionen av applicationinsights är eller högre. När du har uppdaterat versionen kör du npm install
HTTP-strömmar fungerar inte
Om HTTP-streaming inte fungerar:
- Verifiera
@azure/functionsatt paketversionen är 4.3.0 eller senare. - Se till att Azure Functions runtime-version är 4.28 eller senare.
- Kontrollera att
app.setup({ enableHttpStream: true })anropas. - Verify
FUNCTIONS_REQUEST_BODY_SIZE_LIMITär korrekt inställd för stora data.
Krokar som inte utförs
Om dina krokar inte är igång:
- Bekräfta att du använder programmeringsmodell v4.
- Kontrollera syntax för hook-registrering:
app.hook.preInvocation()ellerapp.hook.appStart(). - Kontrollera att du registrerar hooks innan funktionsdefinitioner.
- Gå igenom triggerfiltrering om hooks bara ska köras för specifika funktionstyper.
TypeScript-kompileringsproblem
För TypeScript-specifika problem:
Byggmisslyckanden:
- Kontrollera att
tsconfig.jsonhar en korrektoutDirsom pekar på ditt byggresultat - Se till att
scriptFilemodellen i v3 pekar på kompilerade.jsfiler, inte.ts - Kontrollera att alla TypeScript-beroenden är installerade:
npm install --save-dev typescript @types/node
Typfel:
- Uppdatera
@azure/functionspaket för de senaste typdefinitionerna - Använd rätt import:
import { app, HttpRequest, InvocationContext } from '@azure/functions' - Verifiera att funktionssignaturer matchar förväntade typer
Problem med modulupplösning
Kan inte hitta modulfel:
- Kör
npm installför att säkerställa att alla beroenden är installerade - Kontrollmappen
node_modulesfinns i distributionspaketet - För ES-moduler, se till att filnamn använder
.mjsfiländelsen ellerpackage.jsonhar"type": "module" - Verifiera att relativa importvägar är korrekta efter TypeScript-kompilering
Miljö- och konfigurationsproblem
Saknade miljövariabler:
- Lägg till variabler i
local.settings.jsonför lokal utveckling - Sätt applikationsinställningar i Azure portal för molndistribution
- Använd
process.env["VARIABLE_NAME"]för att komma åt värden
Loggningsproblem:
- Använd
context.log()istället förconsole.log()för funktionsspecifika loggar - Kontrollera att Application Insights reťazec pripojenia är konfigurerad
- Kontrollera loggnivåer i
host.jsonför filtrering
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 Microsoft 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.