Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
De inhoud van dit artikel wordt gewijzigd op basis van uw keuze van het Node.js programmeermodel in de selector boven aan de pagina. Het v4-model is algemeen beschikbaar en is ontworpen voor een flexibelere en intuïtievere ervaring voor JavaScript- en TypeScript-ontwikkelaars. Meer informatie over de verschillen tussen v3 en v4 in de migratiehandleiding.
Dit artikel bevat een handleiding voor het oplossen van veelvoorkomende scenario's in Node.js functie-apps.
Het tabblad Problemen vaststellen en oplossen in de Azure-portal is een nuttige resource om mogelijke problemen met betrekking tot uw toepassing te controleren en diagnosticeren. Het biedt ook mogelijke oplossingen voor uw problemen op basis van de diagnose. Zie Azure Function-app diagnostics voor meer informatie.
Een andere nuttige resource is het tabblad Logboeken in de Azure-portal voor uw Application Insights-exemplaar, zodat u aangepaste KQL-query's kunt uitvoeren. In de volgende voorbeeldquery ziet u hoe u in de afgelopen dag fouten en waarschuwingen voor uw app kunt weergeven:
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
Als deze resources uw probleem niet hebben opgelost, geven de volgende secties advies voor specifieke toepassingsproblemen:
Er zijn geen functies gevonden
Als u een van de volgende fouten in uw logboeken ziet:
Er zijn geen HTTP-triggers gevonden.
Er zijn geen taakfuncties gevonden. Probeer uw taakklassen en methoden openbaar te maken. Als u bindingsextensies gebruikt (bijvoorbeeld Azure Storage, ServiceBus, Timers, enzovoort) controleert u of u de registratiemethode voor de extensie(s) in uw opstartcode (bijvoorbeeld builder) hebt aangeroepen. AddAzureStorage(), opbouwfunctie. AddServiceBus(), opbouwfunctie. AddTimers(), enzovoort).
Probeer de volgende oplossingen:
- Wanneer u lokaal werkt, moet u ervoor zorgen dat u Azure Functions Core Tools v4.0.5382 of hoger gebruikt.
- Bij uitvoering in Azure:
Zorg ervoor dat u Azure Functions Runtime versie 4.25 of hoger gebruikt.
Zorg ervoor dat u Node.js v18 of hoger gebruikt.
Stel de app-instelling in op
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERRORtrue. Deze instelling wordt aanbevolen voor alle model v4-apps en zorgt ervoor dat alle invoerpuntfouten zichtbaar zijn in uw Application Insights-logboeken. Zie App-instellingenreferentie voor Azure Functions voor meer informatie.Controleer de logboeken van uw functie-app op invoerpuntfouten. In de volgende voorbeeldquery ziet u hoe u invoerpuntfouten voor uw app in de afgelopen dag kunt weergeven:
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"
- Zorg ervoor dat uw app de vereiste mapstructuur heeft met een host.json in de hoofdmap en een map voor elke functie die een function.json bestand bevat.
Undici-aanvraag is geen constructor
Als u de volgende fout krijgt in de logboeken van uw functie-app:
System.Private.CoreLib: Uitzondering tijdens het uitvoeren van de functie: Functions.httpTrigger1. System.Private.CoreLib: Resultaat: Mislukkingsuitzondering: undici_1.Request is geen constructor
Zorg ervoor dat u Node.js versie 22.x of hoger gebruikt.
Kan de Azure Functions runtime niet detecteren
Als u de volgende fout krijgt in de logboeken van uw functie-app:
WAARSCHUWING: Kan de Azure Functions runtime niet detecteren. Het pakket '@azure/functions' overschakelen naar de testmodus - niet alle functies worden ondersteund.
Controleer het package.json bestand op een verwijzing naar applicationinsights en controleer of de versie ^2.7.1 of hoger is. Nadat u de versie hebt bijgewerkt, voert u de opdracht uit npm install
HTTP-streams werken niet
Als HTTP-streaming niet werkt:
- Controleer of
@azure/functionspakketversie 4.3.0 of hoger is. - Zorg ervoor dat de runtimeversie van Azure Functions 4.28 of later is.
- Controleer of
app.setup({ enableHttpStream: true })wordt aangeroepen. - Verify
FUNCTIONS_REQUEST_BODY_SIZE_LIMITis correct ingesteld voor grote data.
Hooks worden niet uitgevoerd
Als je hooks niet werken:
- Bevestig dat je programmeermodel v4 gebruikt.
- Controleer de hook-registratiesyntaxis:
app.hook.preInvocation()ofapp.hook.appStart(). - Controleer of je hooks registreert vóór functiedefinities.
- Controleer de triggerfiltering als hooks alleen voor specifieke functietypen moeten worden uitgevoerd.
TypeScript-compilatieproblemen
Voor TypeScript-specifieke problemen:
Bouwfouten:
- Controleer of
tsconfig.jsonde juisteoutDir-verwijzing naar de build-uitvoer heeft - Zorg ervoor dat
scriptFilein het v3-model verwijst naar gecompileerde.js-bestanden, niet naar.ts - Controleer of alle TypeScript-afhankelijkheden zijn geïnstalleerd:
npm install --save-dev typescript @types/node
Typefouten:
- Updatepakket
@azure/functionsvoor de nieuwste typedefinities - Gebruik de juiste importen:
import { app, HttpRequest, InvocationContext } from '@azure/functions' - Controleer of functiehandtekeningen overeenkomen met verwachte types
Problemen met het oplossen van modules
Fouten met 'Kan module niet vinden':
- Voer
npm installuit om te zorgen dat alle afhankelijkheden geïnstalleerd zijn - Controleer of de map
node_modulesin het deploymentpakket bestaat. - Voor ES-modules moet u ervoor zorgen dat bestandsnamen de extensie
.mjsgebruiken of datpackage.json"type": "module"heeft. - Controleer of de relatieve importpaden correct zijn na de TypeScript-compilatie
Omgevings- en configuratieproblemen
Ontbrekende omgevingsvariabelen:
- Voeg variabelen toe voor
local.settings.jsonlokale ontwikkeling - Stel applicatieinstellingen in in Azure portal voor cloud-implementatie
- Gebruik
process.env["VARIABLE_NAME"]om waarden te benaderen
Logproblemen:
- Gebruik
context.log()in plaats vanconsole.log()voor functie-specifieke logs - Controleer of de Application Insights-verbindingsreeks is geconfigureerd
- Controleer de logniveaus in
host.jsonvoor filtering
Hulp krijgen van Microsoft
U kunt op een van de volgende manieren meer hulp krijgen van Microsoft:
- Doorzoek de bekende problemen in de Azure Functions Node.js opslagplaats. Als het probleem niet wordt vermeld, maakt u een nieuw probleem en laat u ons weten wat er is gebeurd.
- Als u uw probleem niet kunt vaststellen met behulp van deze handleiding, zijn Microsoft ondersteuningstechnici beschikbaar om problemen met uw toepassing te diagnosticeren. Microsoft biedt verschillende ondersteuningsplannen. Maak een ondersteuningsticket in de sectie Ondersteuning en probleemoplossing van uw functie-app-pagina in de Azure-portal.
Volgende stappen
Microsoft Q&A-pagina voor Azure Functions - Ontwikkelaarshandleiding voor Azure Functions Node.js