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őretrue
: . 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.