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 durevoli. Fornisce primitive per controllare i progressi, gestire i nuovi tentativi e gestire il flusso di esecuzione. L'SDK elimina 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 e Java. Per la documentazione completa sulle API, i tutorial di avvio rapido e le guide specifiche del linguaggio, consulta la Durable Execution SDK Developer Guide.AWS
Cosa fa l'SDK
Gestione dei checkpoint: l'SDK crea automaticamente i checkpoint man mano che la funzione esegue operazioni durevoli. 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 dopo qualsiasi operazione completata in caso di interruzione.
Coordinamento della riproduzione: 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 dello stato: l'SDK mantiene lo stato di esecuzione separatamente 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 nella Guida per gli sviluppatori di Durable Execution SDK. AWS
Operazioni durevoli
L'SDK fornisce alla tua funzione un oggetto. DurableContext Questo contesto sostituisce il contesto Lambda standard e fornisce metodi per creare checkpoint, gestire il flusso di esecuzione e coordinarsi con sistemi esterni.
DurableContextFornisce le seguenti operazioni per creare flussi di lavoro durevoli:
| Operation | Description |
|---|---|
| Fase | Esegui e controlla un'unità di lavoro con strategie di ripetizione dei tentativi e semantica di esecuzione configurabili. |
| Attendi | Metti in pausa l'esecuzione per una durata specificata senza consumare risorse di calcolo. |
| Attendi la condizione | Esegui un sondaggio per verificare una condizione con checkpoint automatico tra un tentativo e l'altro. |
| Richiamata | Metti in pausa l'esecuzione e attendi che un sistema esterno fornisca input tramite l'API Lambda. |
| Invoke | Chiama un'altra funzione Lambda e attendi il suo risultato, con checkpoint automatico. |
| Parallela | Esegui più operazioni contemporaneamente con politiche di completamento configurabili. |
| Mappa | Elabora ogni elemento di una raccolta contemporaneamente con il controllo simultaneo opzionale. |
| Contesto secondario | Crea un contesto di esecuzione isolato per raggruppare più operazioni. |
Ogni operazione durevole crea automaticamente punti di controllo, assicurando che la funzione possa riprendere da qualsiasi punto. Per riferimenti dettagliati all'API, esempi di codice e utilizzo specifico del linguaggio, consulta SDK Reference nella Durable Execution SDK Developer Guide. AWS
Come vengono misurate le operazioni durevoli
Ogni operazione duratura eseguita DurableContext crea punti di controllo per tenere traccia dell'avanzamento dell'esecuzione e archiviare i dati sullo stato. Queste operazioni comportano addebiti 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 invocazione, i payload restituiti dai passaggi e i dati trasmessi durante il completamento dei callback. Comprendere come viene misurata la durata delle operazioni consente di stimare i costi di esecuzione e ottimizzare i flussi di lavoro. Per i dettagli sui prezzi, consulta la pagina dei prezzi di Lambda
La dimensione del payload si riferisce alla dimensione dei dati serializzati necessari a garantire la persistenza di un'operazione durevole. 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 del completamento con successo o l'oggetto di errore serializzato se l'operazione non è riuscita.
Funzionamento di base
Le operazioni di base sono gli elementi costitutivi fondamentali per funzioni durevoli:
| Operation | Tempistica dei checkpoint | Numero di operazioni | Dati persistenti |
|---|---|---|---|
| Esecuzione | Avviato | 1 | Dimensione del payload di input |
| Esecuzione | Completato () Succeeded/Failed/Stopped | 0 | Dimensione del payload in uscita |
| Fase | Retry/Succeeded/Failed | 1 + Nessun tentativo | Dimensione del payload restituita da ogni tentativo |
| Attendi | 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 mettere in pausa e attendere che sistemi esterni forniscano input. Queste operazioni creano punti di controllo quando il callback viene creato e quando è completato:
| Operation | Tempistica del checkpoint | Numero di operazioni | Dati persistenti |
|---|---|---|---|
| CreateCallback | Avviato | 1 | N/A |
| Completamento del callback tramite chiamata API | Completato | 0 | Payload di callback |
| WaitForCallback | Avviato | 3+ N tentativi (contesto + callback + step) | Payload restituiti dai tentativi di invio, più due copie del payload di callback |
Operazioni composte
Le operazioni composte combinano più operazioni durevoli per gestire modelli di coordinamento complessi come esecuzione parallela, elaborazione di array e contesti annidati:
| Operation | tempistica dei checkpoint | Numero di operazioni | Dati persistenti |
|---|---|---|---|
| Parallela | Avviato | 1+ N rami (1 contesto principale + N contesti secondari) | Fino a due copie della dimensione del payload restituita da ciascun ramo, più gli stati di ogni ramo |
| Mappa | Avviato | 1+ N rami (1 contesto genitore+N contesti secondari) | Fino a due copie della dimensione del payload restituita da ogni iterazione, più gli stati di ogni iterazione |
| Aiutanti di Promise | Completato | 1 | Dimensione del payload restituita dalla promessa |
| RunInChildContext | Succeeded/Failed | 1 | Dimensione del payload restituita dal contesto secondario |
Per i contesti, ad esempio provenienti da runInChildContext o utilizzati internamente da operazioni composte, i risultati inferiori a 256 KB vengono controllati direttamente. I risultati più grandi non vengono archiviati, ma vengono ricostruiti durante la riproduzione rielaborando le operazioni del contesto.