View a markdown version of this page

SDK di esecuzione durevole - 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à.

SDK di esecuzione durevole

L'SDK di esecuzione durevole è la base per la creazione di funzioni durature. Fornisce primitive per verificare l'avanzamento, gestire i tentativi e gestire il flusso di esecuzione. L'SDK astrae la complessità della gestione e della riproduzione dei checkpoint, consentendoti di scrivere codice sequenziale che diventa automaticamente tollerante ai guasti.

L'SDK è disponibile per JavaScript, TypeScript, Python, Java, Go e C# (.NET). Per una documentazione completa sulle API, tutorial di avvio rapido e guide specifiche per il linguaggio, consulta la AWS Guida per sviluppatori di Durable Execution SDK.

Cosa fa l'SDK

Gestione dei checkpoint: L'SDK crea automaticamente dei checkpoint man mano che la funzione esegue operazioni durature. Ogni checkpoint registra il tipo di operazione, gli input e i risultati. Quando la funzione completa un passaggio, l'SDK mantiene il checkpoint prima di continuare. Ciò garantisce che la funzione possa riprendere da qualsiasi operazione completata se interrotta.

Coordinamento dei replay: Quando la funzione riprende dopo una pausa o un'interruzione, l'SDK esegue la riproduzione. Esegue il codice dall'inizio ma salta le operazioni completate, utilizzando i risultati dei checkpoint memorizzati invece di rieseguirli. L'SDK garantisce che la riproduzione sia deterministica. Con gli stessi input e lo stesso registro dei checkpoint, la funzione produce gli stessi risultati.

Isolamento statale: L'SDK mantiene lo stato di esecuzione separato dalla logica aziendale. Ogni esecuzione durevole ha il proprio registro dei checkpoint a cui le altre esecuzioni non possono accedere. L'SDK crittografa i dati dei checkpoint inattivi e garantisce che lo stato rimanga coerente tra i replay.

Per una spiegazione dettagliata del funzionamento del checkpoint e del comportamento di riproduzione, consulta Concetti chiave nel AWS Guida per gli sviluppatori di Durable Execution SDK.

Operazioni durevoli

L'SDK fornisce alla tua funzione un DurableContext oggetto. Questo contesto sostituisce il contesto Lambda standard e fornisce metodi per creare checkpoint, gestire il flusso di esecuzione e coordinarsi con sistemi esterni.

Il DurableContext fornisce le seguenti operazioni per la creazione di flussi di lavoro durevoli:

Operazione Description
Fase Esegui e controlla un'unità di lavoro con strategie di riprova configurabili e semantica di esecuzione.
Wait Sospendi l'esecuzione per una durata specificata senza consumare risorse di calcolo.
Attendi la condizione Esegui il sondaggio per individuare una condizione con un checkpoint automatico tra un tentativo e l'altro.
Richiamata Metti in pausa l'esecuzione e attendi che un sistema esterno fornisca l'input tramite l'API Lambda.
Invoke Chiama un'altra funzione Lambda e attendi il risultato, con un checkpoint automatico.
Parallelo Esegui più operazioni contemporaneamente con politiche di completamento configurabili.
Mappa Elabora ogni elemento di una raccolta contemporaneamente con il controllo della concorrenza opzionale.
Contesto secondario Crea un contesto di esecuzione isolato per raggruppare più operazioni.

Ogni operazione duratura crea automaticamente dei checkpoint, assicurando che la funzione possa riprendere da qualsiasi punto. Per riferimenti dettagliati alle API, esempi di codice e utilizzo specifico per lingua, consulta Riferimento SDK nel AWS Guida per gli sviluppatori di Durable Execution SDK.

Come vengono misurate le operazioni durevoli

Ogni operazione duratura che effettui DurableContext crea punti di controllo per tenere traccia dell'avanzamento dell'esecuzione e archiviare i dati sullo stato. Queste operazioni comportano costi in base al loro utilizzo e i checkpoint possono contenere dati che contribuiscono ai costi di scrittura e conservazione dei dati. I dati archiviati includono i dati degli eventi di richiamo, i payload restituiti dalle fasi e i dati trasmessi durante il completamento dei callback. Comprendere in che modo vengono misurate le operazioni durature consente di stimare i costi di esecuzione e ottimizzare i flussi di lavoro. Per informazioni dettagliate sui prezzi, consulta la Pagina dei prezzi Lambda.

La dimensione del payload si riferisce alla dimensione dei dati serializzati che persistono in un'operazione duratura. I dati vengono misurati in byte e la dimensione può variare a seconda del serializzatore utilizzato dall'operazione. Il payload di un'operazione potrebbe essere il risultato stesso dei completamenti riusciti o l'oggetto di errore serializzato se l'operazione non è riuscita.

Funzionamento di base

Le operazioni di base sono gli elementi fondamentali per le funzioni durature:

Operazione Tempistica dei checkpoint Numero di operazioni I dati sono persistiti
Esecuzione Avviato 1 Dimensione del payload di input
Esecuzione Completato (Succeeded/Failed/Stopped) 0 Dimensione del carico utile in uscita
Fase Retry/Succeeded/Failed 1 + N tentativi Dimensione del payload restituita da ogni tentativo
Wait Avviato 1 N/A
WaitForCondition Ogni tentativo di sondaggio 1 + N sondaggi Dimensione del payload restituita da ogni tentativo di sondaggio
Invocation-level Riprova Avviato 1 Payload per l'oggetto di errore

Operazioni di callback

Le operazioni di callback consentono alla funzione di interrompersi e attendere che i sistemi esterni forniscano l'input. Queste operazioni creano punti di controllo quando il callback viene creato e quando è completato:

Operazione Tempistica dei checkpoint Numero di operazioni I dati sono persistiti
CreateCallback Avviato 1 N/A
Completamento del callback tramite chiamata API Completato 0 Payload di callback
WaitForCallback Avviato 3 + N tentativi (contesto + callback + passaggio) Payload restituiti dai tentativi di fase del mittente, più due copie del payload di callback

Operazioni composte

Le operazioni composte combinano più operazioni durevoli per gestire modelli di coordinamento complessi come l'esecuzione parallela, l'elaborazione di array e i contesti annidati:

Operazione Tempistica dei checkpoint Numero di operazioni I dati sono persistiti
Parallelo Avviato 1 + N rami (1 contesto principale + N contesti figlio) Fino a due copie della dimensione del payload restituita da ciascuna filiale, più gli stati di ciascuna filiale
Mappa Avviato 1 + N filiali (1 contesto principale + N contesti figlio) Fino a due copie della dimensione del payload restituita da ogni iterazione, più gli stati di ciascuna iterazione
Aiutanti di Promise Completato 1 Dimensione del payload restituita dalla promessa
RunInChildContext Succeeded/Failed 1 Dimensione del payload restituita dal contesto secondario

Per contesti, ad esempio da runInChildContext o utilizzati internamente da operazioni composte, i risultati inferiori a 256 KB vengono sottoposti direttamente al checkpoint. I risultati più grandi non vengono memorizzati, ma vengono ricostruiti durante la riproduzione rielaborando le operazioni del contesto.