In che modo Lambda gestisce gli errori e i nuovi tentativi con la chiamata asincrona - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

In che modo Lambda gestisce gli errori e i nuovi tentativi con la chiamata asincrona

Lambda gestisce la coda degli eventi asincroni della funzione e tenta di riprovare gli errori. Se la funzione restituisce un errore, per impostazione predefinita Lambda tenta di eseguirla altre due volte, con un'attesa di un minuto tra i primi due tentativi e due minuti tra il secondo e il terzo tentativo. Gli errori di funzione includono gli errori restituiti dal codice della funzione e gli errori restituiti dal runtime della funzione, ad esempio timeout.

Se la funzione non dispone di sufficiente concorrenza per elaborare tutti gli eventi, ulteriori richieste saranno sottoposte a throttling. Per gli errori di limitazione (429) e gli errori di sistema (serie 500), Lambda riporta l'evento nella coda e tenta di eseguire nuovamente la funzione per un massimo di 6 ore per impostazione predefinita. L'intervallo tra i tentativi aumenta esponenzialmente da 1 secondo dopo il primo tentativo a un massimo di 5 minuti. Se la coda contiene molte voci, Lambda aumenta l'intervallo dei tentativi e riduce la velocità con cui legge gli eventi dalla coda.

Anche se la funzione non restituisce un errore, è possibile che riceva lo stesso evento da Lambda più volte perché la coda stessa alla fine è coerente. Se la funzione non è in grado di seguire gli eventi in entrata, gli eventi possono anche essere eliminati dalla coda senza essere inviati alla funzione. Verificare che il codice della funzione gestisca normalmente gli eventi duplicati e che si disponga di sufficiente concorrenza per gestire tutte le invocazioni.

Quando la coda è molto lunga, i nuovi eventi potrebbero diventare datati prima che Lambda abbia la possibilità di inviarli alla funzione. Quando un evento scade o fallisce tutti i tentativi di elaborazione, Lambda lo scarta. È possibile configurare la gestione degli errori per una funzione per ridurre il numero di tentativi eseguiti da Lambda o per eliminare più rapidamente gli eventi non elaborati.

È anche possibile configurare Lambda in modo che invii un record di invocazione a un altro servizio. Per ulteriori informazioni, consulta Acquisizione dei record delle chiamate asincrone Lambda.