Problemen met Node.js-apps in Azure Functions oplossen

Belangrijk

De inhoud van dit artikel wordt gewijzigd op basis van uw keuze uit 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 Azure Portal is een nuttige resource om mogelijke problemen met betrekking tot uw toepassing te controleren en te diagnosticeren. Het biedt ook mogelijke oplossingen voor uw problemen op basis van de diagnose. Zie diagnostische gegevens van Azure Function-apps voor meer informatie.

Een andere nuttige resource is het tabblad Logboeken in 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) hebt aangeroepen in uw opstartcode (bijvoorbeeld builder). AddAzureStorage(), opbouwfunctie. AddServiceBus(), opbouwfunctie. AddTimers(), enzovoort).

Probeer de volgende oplossingen:

  • Zorg ervoor dat u Azure Functions Core Tools v4.0.5382 of hoger gebruikt wanneer u lokaal werkt.
  • Wanneer u in Azure werkt:
    • 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 de naslaginformatie over app-instellingen 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: Foutuitzondering: undici_1.Request is geen constructor

Zorg ervoor dat u Node.js versie 18.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. Schakelen tussen het pakket '@azure/functions' om de testmodus te testen. Niet alle functies worden ondersteund.

Controleer het package.json bestand op een verwijzing naar applicationinsights en controleer of de versie of hoger is ^2.7.1 . Nadat u de versie hebt bijgewerkt, voert u de opdracht uit npm install

Krijg hulp van Microsoft

U kunt op een van de volgende manieren meer hulp krijgen van Microsoft:

  • Doorzoek de bekende problemen in de Opslagplaats Azure Functions Node.js. 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 Azure Portal.

Volgende stappen