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à.
Le migliori pratiche per le funzioni durevoli Lambda
Le funzioni Durable utilizzano un modello di esecuzione basato sulla ripetizione che richiede pratiche di programmazione diverse rispetto alle tradizionali funzioni Lambda. Consulta le best practice nella AWS Durable Execution SDK Developer Guide per indicazioni su come scrivere e testare codice durevole per flussi di lavoro.
I seguenti consigli sono le migliori pratiche per l'implementazione, l'invocazione e il monitoraggio delle funzioni durevoli Lambda.
Versioni e alias delle funzioni
Richiama funzioni con numeri di versione o alias per aggiungere le esecuzioni a versioni di codice specifiche. Assicurati che le nuove versioni del codice siano in grado di gestire lo stato delle versioni precedenti. Non rinominare i passaggi o modificarne il comportamento in modo da interrompere la riproduzione. Se rinomini un passaggio o ne modifichi il comportamento mentre sono in corso delle esecuzioni, tali esecuzioni possono non riprendere o produrre risultati errati. Ciò accade perché il runtime non è più in grado di far corrispondere lo stato salvato alla definizione della fase prevista.
Monitoraggio
Abilita la registrazione strutturata con ID di esecuzione e nomi dei passaggi. Imposta CloudWatch allarmi per i tassi di errore e la durata dell'esecuzione. Usa il tracciamento per identificare i colli di bottiglia. Per una guida dettagliata, consulta Monitoraggio e debug.
Gestione degli errori
Oltre a configurare le strategie di ripetizione dei tentativi per gli errori transitori, configura una coda di lettere morte (DLQ) sulla tua funzione durevole per acquisire eventi da esecuzioni permanentemente fallite. Quando un'esecuzione duratura raggiunge uno stato terminale (FAILED, STOPPED o TIMED_OUT) dopo una chiamata asincrona, Lambda invia l'evento di attivazione originale al DLQ. In questo modo, è possibile ispezionare, eseguire il debug e, facoltativamente, rielaborare gli eventi non riusciti senza perderli.
Per configurare un DLQ, imposta la DeadLetterConfig proprietà della tua funzione su una coda Amazon SQS o su un argomento Amazon SNS ARN. Per ulteriori informazioni, consulta code. Dead-letter
Segui queste best practice per la gestione degli errori con funzioni durevoli:
-
Configura un DLQ per le chiamate asincrone: allega sempre una coda di lettere morte quando richiami funzioni durevoli in modo asincrono. A differenza delle funzioni Lambda standard, il servizio non ritenta automaticamente le esecuzioni durevoli in caso di errore. Un DLQ correttamente configurato acquisisce gli eventi che hanno portato a esecuzioni permanentemente fallite. Assicuratevi che il DLQ disponga delle autorizzazioni corrette e di una capacità sufficiente per ricevere messaggi.
-
Utilizza le strategie di ripetizione in fasi: configura strategie di ripetizione esplicite con un backoff appropriato per gli errori transitori. Per indicazioni sulla configurazione dei tentativi, consulta Ritentativi per funzioni durevoli. Riprova per le funzioni durevoli Lambda
-
Combina i DLQ con EventBridge le notifiche: utilizza EventBridge le regole per segnalare le modifiche allo stato FAILED, STOPPED e TIMED_OUT per una visibilità in tempo reale e utilizza un DLQ per preservare il payload dell'evento originale per successive analisi o rielaborazioni.
-
Monitora la profondità del DLQ: crea un CloudWatch allarme sulla
ApproximateNumberOfMessagesVisiblemetrica per il tuo DLQ per rilevare quando i guasti si stanno accumulando.