

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
<a name="durable-execution-sdk"></a>

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](https://docs.aws.amazon.com/durable-execution/)

## Cosa fa l'SDK
<a name="durable-sdk-what-it-does"></a>

**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](https://docs.aws.amazon.com/durable-execution/getting-started/key-concepts/) nella Guida per gli sviluppatori di Durable Execution SDK. AWS 

## Operazioni durevoli
<a name="durable-sdk-operations"></a>

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.

`DurableContext`Fornisce le seguenti operazioni per creare flussi di lavoro durevoli:


| Operation | Description | 
| --- | --- | 
| [Fase](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/step/) | Esegui e controlla un'unità di lavoro con strategie di ripetizione dei tentativi e semantica di esecuzione configurabili. | 
| [Attendi](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/wait/) | Metti in pausa l'esecuzione per una durata specificata senza consumare risorse di calcolo. | 
| [Attendi la condizione](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/wait-for-condition/) | Esegui un sondaggio per verificare una condizione con checkpoint automatico tra un tentativo e l'altro. | 
| [Richiamata](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/callback/) | Metti in pausa l'esecuzione e attendi che un sistema esterno fornisca input tramite l'API Lambda. | 
| [Invoke](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/invoke/) | Chiama un'altra funzione Lambda e attendi il suo risultato, con checkpoint automatico. | 
| [Parallela](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/parallel/) | Esegui più operazioni contemporaneamente con politiche di completamento configurabili. | 
| [Mappa](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/map/) | Elabora ogni elemento di una raccolta contemporaneamente con il controllo simultaneo opzionale. | 
| [Contesto secondario](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/child-context/) | 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](https://docs.aws.amazon.com/durable-execution/sdk-reference/) Guide. AWS 

## Come vengono misurate le operazioni durevoli
<a name="durable-operations-checkpoint-consumption"></a>

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](https://aws.amazon.com/lambda/pricing/).

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
<a name="durable-operations-basic"></a>

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
<a name="durable-operations-callbacks"></a>

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
<a name="durable-operations-compound"></a>

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.