Risolvere i problemi relativi alle 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 di Node.js.

La scheda Diagnostica e risoluzione dei problemi nel 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 di Azure Functions.

Un'altra risorsa utile è la scheda Log nel 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 job trovata. Prova a rendere pubbliche le classi e i metodi del job. Se si usano estensioni di binding (ad esempio Archiviazione di Azure, ServiceBus, Timer e così via), assicurarsi di aver chiamato nel codice di avvio il metodo di registrazione per le estensioni (ad esempio builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers() e così via).

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:
    • Assicurati di usare Versione del runtime di Funzioni di Azure 4.25 o versione successiva.

    • Assicurarsi di usare Node.js v18 o versione successiva.

    • Impostare l'impostazione FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR dell'app su true. 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 maggiori informazioni, vedere Informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.

    • Controlli nei log dell'app per le funzioni la presenza di eventuali errori del punto di ingresso. La seguente query di esempio mostra come visualizzare gli errori del punto di ingresso dell'app nelle ultime 24 ore:

      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 richiesta con un host.json nella radice e una cartella per ogni funzione contenente un file function.json .

La richiesta Undici non è un costruttore

Se nei log dell'app per le funzioni viene visualizzato il seguente errore:

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 22.x o successiva.

Impossibile rilevare il runtime di Funzioni di Azure

Se nei log dell'app per le funzioni viene visualizzato l'errore seguente:

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à.

Controlli il file package.json per verificare che contenga un riferimento a applicationinsights e si assicuri che la versione sia ^2.7.1 o una versione successiva. Dopo aver aggiornato la versione, eseguire npm install

Ottenere assistenza da Microsoft

È possibile ottenere altre informazioni da Microsoft in uno dei modi seguenti:

  • Cercare i problemi noti nel repository Funzioni di Azure Node.js. Se il tuo problema non è menzionato, crea una nuova segnalazione e facci sapere cosa è successo.
  • Se non è possibile diagnosticare il problema usando questa guida, Microsoft tecnici del supporto sono disponibili per diagnosticare i problemi con l'applicazione. Microsoft offre diversi 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.

Passaggi successivi