Share via


Node.js-alkalmazások hibaelhárítása az Azure Functionsben

Fontos

A cikk tartalma a Node.js programozási modell választásától függően változik a lap tetején található választóban. A v4-modell általánosan elérhető, és úgy lett kialakítva, hogy rugalmasabb és intuitívabb felhasználói élményt nyújtson JavaScript- és TypeScript-fejlesztők számára. A migrálási útmutatóban további információt olvashat a v3 és a v4 közötti különbségekről.

Ez a cikk útmutatást nyújt a Node.js függvényalkalmazások gyakori forgatókönyveinek hibaelhárításához.

Az Azure Portal Problémák diagnosztizálása és megoldása lapja hasznos erőforrás az alkalmazással kapcsolatos lehetséges problémák monitorozásához és diagnosztizálásához. Emellett lehetséges megoldásokat is kínál a problémákra a diagnózis alapján. További információ: Azure Function app diagnostics.

Egy másik hasznos erőforrás az Azure Portal Naplók lapja az alkalmazás Elemzések példányhoz, hogy egyéni KQL-lekérdezéseket futtathass. Az alábbi példa lekérdezés bemutatja, hogyan tekintheti meg az alkalmazás hibáit és figyelmeztetéseit az elmúlt napban:

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

Ha ezek az erőforrások nem oldják meg a problémát, az alábbi szakaszok adott alkalmazásproblémákra nyújtanak tanácsot:

Nem található függvény

Ha az alábbi hibák bármelyikét látja a naplókban:

Nem található HTTP-eseményindító.

Nem találhatók feladatfüggvények. Próbálja meg nyilvánossá tenni a feladatosztályokat és metódusokat. Ha kötésbővítményeket (pl. Azure Storage, ServiceBus, Időzítők stb.) használ, győződjön meg arról, hogy meghívta a bővítmény(ek) regisztrációs metódusát az indítási kódban (pl. builder). AddAzureStorage(), builder. AddServiceBus(), builder. AddTimers(), stb.).

Próbálkozzon a következő javításokkal:

  • Helyi futtatáskor győződjön meg arról, hogy az Azure Functions Core Tools 4.0.5382-s vagy újabb verzióját használja.
  • Az Azure-ban való futtatáskor:
    • Győződjön meg arról, hogy az Azure Functions Runtime 4.25-ös vagy újabb verzióját használja.

    • Győződjön meg arról, hogy Node.js v18 vagy újabb verziót használ.

    • Állítsa be az alkalmazásbeállítást FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR a következőre true: . Ez a beállítás minden modell v4-alkalmazáshoz ajánlott, és biztosítja, hogy minden belépési pont hibája látható legyen az Application Insights-naplókban. További információkért tekintse meg az Azure Functions alkalmazásbeállításokra vonatkozó hivatkozását.

    • Ellenőrizze a függvényalkalmazás naplóit a belépési pontok hibáinak keresésekor. Az alábbi példa lekérdezés bemutatja, hogyan tekintheti meg az alkalmazás belépési pontjának hibáit az elmúlt napon:

      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"
      
  • Győződjön meg arról, hogy az alkalmazás rendelkezik a szükséges mappastruktúrával , amelynek gyökérkönyvtárában egy host.json található, és minden függvényhez, amely tartalmaz egy function.json fájlt.

Az undici kérés nem konstruktor

Ha a függvényalkalmazás naplóiban a következő hibaüzenet jelenik meg:

System.Private.CoreLib: Kivétel függvény végrehajtása közben: Functions.httpTrigger1. System.Private.CoreLib: Eredmény: Hibakivétel: undici_1.Request nem konstruktor

Győződjön meg arról, hogy a Node.js 18.x vagy újabb verzióját használja.

Nem sikerült észlelni az Azure Functions-futtatókörnyezetet

Ha a függvényalkalmazás naplóiban a következő hibaüzenet jelenik meg:

FIGYELMEZTETÉS: Nem sikerült észlelni az Azure Functions-futtatókörnyezetet. A "@azure/functions" csomag váltása tesztelési módra – nem minden funkció támogatott.

Ellenőrizze a package.json fájl hivatkozását, applicationinsights és győződjön meg arról, hogy a verzió ^2.7.1 vagy az újabb. A verzió frissítése után futtassa a npm install

Segítség kérése a Microsofttól

A Microsofttól az alábbi módokon kaphat további segítséget:

  • Keressen rá az Azure Functions Node.js-adattár ismert problémáira. Ha nem látja a problémát, hozzon létre egy új problémát, és tudassa velünk, hogy mi történt.
  • Ha ebben az útmutatóban nem tudja diagnosztizálni a problémát, a Microsoft támogatási szakemberei segíthetnek az alkalmazással kapcsolatos problémák diagnosztizálásában. A Microsoft különböző támogatási csomagokat kínál. Hozzon létre egy támogatási jegyet a függvényalkalmazás oldalÁnak Támogatási és hibaelhárítási szakaszában az Azure Portalon.

További lépések