In che modo posso determinare se la mia funzione Lambda è scaduta?

3 minuti di lettura
0

Quando esamino i parametri di Amazon CloudWatch della funzione, la mia funzione AWS Lambda riscontra errori intermittenti e non è chiaro il motivo. L'aumento del tasso di errore della mia funzione Lambda potrebbe essere causato da problemi di timeout? In tal caso, come faccio a stabilire se la mia funzione Lambda è scaduta?

Breve descrizione

Quando esamini il gruppo di registri CloudWatch della tua funzione Lambda, cerca la frase Task timed out (Attività scaduta). Quindi, utilizza gli ID di richiesta delle chiamate di timeout associate per recuperare i registri completi per ogni timeout di chiamata.

Per risolvere eventuali errori di timeout identificati, consulta la sezione How do I troubleshoot Lambda function invocation timeout errors? (Come si risolvono gli errori di timeout di chiamata della funzione Lambda?).

Nota: Quando una chiamata a una funzione Lambda scade, viene visualizzato un messaggio di errore Task timed out (Attività scaduta) nei registri CloudWatch della chiamata fallita, e non un messaggio del tipo Error (Errore). Se cerchi nei registri CloudWatch della tua funzione solo messaggi Error (Errore), la ricerca restituisce solo errori di tempo di esecuzione relativi al codice, non errori di timeout di chiamata. Per ulteriori informazioni, consulta la sezione Monitoring AWS Lambda errors using Amazon CloudWatch (Monitorare gli errori Lambda di AWS con Amazon CloudWatch).

Risoluzione

Prerequisiti

Se non l'hai già fatto, concedi le autorizzazioni di registrazione di CloudWatch alla tua funzione Lambda. Per ulteriori informazioni, consulta le policy gestite di AWS per le caratteristiche Lambda .

Recupera gli ID richiesta di qualsiasi chiamata di timeout cercando nel gruppo di registri CloudWatch della funzione la frase "Task timed out" (Attività scaduta).

Nota: Le query di CloudWatch Logs Insights comportano addebiti in base alla quantità di dati interrogati. Per ulteriori informazioni, consulta la pagina dei prezzi di Amazon CloudWatch.

1.    Apri la pagina Functions (Funzioni) nella console Lambda.

2.    Scegli una funzione.

3.    Seleziona Monitor (Monitoraggio).

4.    Seleziona l'opzione View logs in CloudWatch (Visualizza registri in CloudWatch). La pagina Log group details (Dettagli del gruppo di registri) della funzione si apre nella console di CloudWatch.

5.    Seleziona l'opzione View in Logs Insights (Visualizza in Logs Insights).

6.    Nella casella di testo query di Logs Insights inserisci la seguente query e quindi seleziona Run query (Esegui query):

fields @timestamp, @requestId, @message, @logStream
| filter @message like "Task timed out"
| sort @timestamp desc
| limit 100

La risposta restituisce un elenco di ID richiesta per le chiamate di timeout.

Per ulteriori informazioni, consulta Analyzing log data with CloudWatch Insights (Analisi dei dati di registro con CloudWatch Logs Insights).

Nota: Per gruppi di registri di grandi dimensioni, considera la possibilità di limitare l'ambito della ricerca aggiungendo una funzione datetime alla query di Insights. Per ulteriori informazioni, consulta la sezione Sintassi query CloudWatch Logs Insights.

Usa gli ID di richiesta delle chiamate di timeout per recuperare i registri completi per ogni timeout di chiamata

Invia registri utilizzando la funzionalità di registrazione standard per il linguaggio di programmazione che stai utilizzando. Per istruzioni specifiche sulla lingua, consulta la pagina Using the AWS CLI (Utilizzo di AWS CLI) sezione Accessing Amazon CloudWatch Logs for AWS Lambda (Accesso ad Amazon CloudWatch Logs per Lambda AWS).


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa