Risolvere i problemi delle app Node.js in Funzioni di Azure
Importante
Il contenuto di questo articolo cambia in base alla scelta del modello di programmazione Node.js nel selettore nella parte superiore della pagina. Il modello v4 è disponibile a livello generale ed è progettato per offrire un'esperienza più flessibile e intuitiva per gli sviluppatori JavaScript e TypeScript. Altre informazioni sulle differenze tra v3 e v4 sono disponibili nella guida alla migrazione.
Questo articolo fornisce una guida per la risoluzione dei problemi relativi agli scenari comuni nelle app per le funzioni Node.js.
La scheda Diagnostica e risoluzione dei problemi nella portale di Azure è una risorsa utile per monitorare e diagnosticare i possibili problemi correlati all'applicazione. Fornisce anche potenziali soluzioni ai problemi in base alla diagnosi. Per altre informazioni, vedere Diagnostica dell'app per le funzioni di Azure.
Un'altra risorsa utile è la scheda Log nella portale di Azure per l'istanza di Application Insights in modo da poter eseguire query KQL personalizzate. La query di esempio seguente mostra come visualizzare gli errori e gli avvisi per l'app nell'ultimo giorno:
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
Se tali risorse non hanno risolto il problema, le sezioni seguenti forniscono consigli per problemi specifici dell'applicazione:
Nessuna funzione trovata
Se nei log vengono visualizzati gli errori seguenti:
Non sono stati trovati trigger HTTP.
Nessuna funzione di processo trovata. Provare a rendere pubbliche le classi e i metodi di processo. Se si usano estensioni di associazione ,ad esempio Archiviazione di Azure, ServiceBus, Timer e così via, assicurarsi di aver chiamato il metodo di registrazione per le estensioni nel codice di avvio ,ad esempio generatore. AddAzure Archiviazione(), builder. AddServiceBus(), generatore. AddTimers(), etc.).
Provare le correzioni seguenti:
- Quando si esegue localmente, assicurarsi di usare Funzioni di Azure Core Tools v4.0.5382 o versione successiva.
- Durante l'esecuzione in Azure:
Assicurarsi di usare Funzioni di Azure runtime versione 4.25 o successiva.
Assicurarsi di usare Node.js v18 o versione successiva.
Impostare l'impostazione
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR
dell'app sutrue
. Questa impostazione è consigliata per tutte le app v4 del modello e garantisce che tutti gli errori del punto di ingresso siano visibili nei log di Application Insights. Per altre informazioni, vedere Informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.Controllare i log dell'app per le funzioni per individuare gli errori del punto di ingresso. La query di esempio seguente mostra come visualizzare gli errori del punto di ingresso per l'app nell'ultimo giorno:
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"
- Assicurarsi che l'app abbia la struttura di cartelle necessaria con un host.json nella radice e una cartella per ogni funzione contenente un file function.json.
Undici request is not a constructor (La richiesta Undici non è un costruttore)
Se viene visualizzato l'errore seguente nei log dell'app per le funzioni:
System.Private.CoreLib: eccezione durante l'esecuzione della funzione: Functions.httpTrigger1. System.Private.CoreLib: Risultato: Eccezione non riuscita: undici_1.Request non è un costruttore
Assicurarsi di usare Node.js versione 18.x o successiva.
Impossibile rilevare il runtime di Funzioni di Azure
Se viene visualizzato l'errore seguente nei log dell'app per le funzioni:
AVVISO: impossibile rilevare il runtime di Funzioni di Azure. Il passaggio del pacchetto "@azure/functions" alla modalità di test non è supportato da tutte le funzionalità.
Controllare il package.json
file per un riferimento a applicationinsights
e assicurarsi che la versione sia ^2.7.1
o successiva. Dopo aver aggiornato la versione, eseguire npm install
Assistenza Microsoft
È possibile ottenere altre informazioni da Microsoft in uno dei modi seguenti:
- Cercare i problemi noti nel repository Node.js Funzioni di Azure. Se il problema non viene visualizzato, creare un nuovo problema e segnalarlo.
- Se non è possibile diagnosticare il problema usando questa guida, i tecnici del supporto Tecnico Microsoft sono disponibili per diagnosticare i problemi relativi all'applicazione. Microsoft offre vari piani di supporto. Creare un ticket di supporto nella sezione Supporto e risoluzione dei problemi della pagina dell'app per le funzioni nel portale di Azure.