

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

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

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](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/step/) | Esegui e controlla un'unità di lavoro con strategie di riprova configurabili e semantica di esecuzione. | 
| [Wait](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/wait/) | Sospendi 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 il sondaggio per individuare una condizione con un 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 l'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 risultato, con un checkpoint automatico. | 
| [Parallelo](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 della concorrenza 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 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](https://docs.aws.amazon.com/durable-execution/sdk-reference/) nel AWS Guida per gli sviluppatori di Durable Execution SDK.

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

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

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

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

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

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.