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à.
Comprendere il modello di programmazione Lambda
Lambda offre due modelli di programmazione: funzioni standard che durano fino a 15 minuti e Durable Functions che possono funzionare fino a un anno. Sebbene entrambi condividano i concetti fondamentali, Durable Functions aggiunge funzionalità per flussi di lavoro di lunga durata e caratterizzati da uno stato.
Lambda fornisce un modello di programmazione comune a tutti i tempi di esecuzione. Il modello di programmazione definisce l'interfaccia tra il codice e il sistema Lambda. Comunica a Lambda il punto di ingresso alla funzione definendo un gestore nella configurazione della funzione. Il runtime trasferisce al gestore gli oggetti che contengono l'evento di chiamata e il contesto, ad esempio il nome della funzione e l'ID della richiesta.
Per Durable Functions, il gestore riceve anche un oggetto che fornisce: DurableContext
Funzionalità di checkpoint tramite step ()
Gestione dello stato di attesa tramite wait () e waitForCallback ()
Persistenza automatica dello stato tra le chiamate
Quando l'handler termina l'elaborazione del primo evento, il runtime ne invia un altro. Per Durable Functions, il gestore può sospendere l'esecuzione tra i passaggi e Lambda salverà e ripristinerà automaticamente lo stato quando la funzione riprende. La classe della funzione rimane in memoria, quindi i client e le variabili dichiarate al di fuori del metodo del gestore nel codice di inizializzazione possono essere riutilizzati. Per risparmiare tempo di elaborazione sugli eventi successivi, crea risorse riutilizzabili come i client SDK AWS durante l'inizializzazione. Una volta inizializzata, ogni istanza della tua funzione può elaborare migliaia di richieste.
La funzione ha anche accesso allo spazio di archiviazione locale nella directory /tmp, una cache transitoria che può essere utilizzata per più invocazioni. Per ulteriori informazioni, consulta Ambiente di esecuzione.
Quando la traccia AWS X-Ray è abilitata, il runtime registra sottosegmenti separati per l'inizializzazione e l'esecuzione.
Il runtime acquisisce l'output di registrazione dalla tua funzione e lo invia ad Amazon CloudWatch Logs. Oltre a registrare l'output della funzione, il runtime registra anche le voci all'avvio e alla fine dell'invocazione. Questo include un log del report con l'ID della richiesta, la durata fatturata, la durata di inizializzazione e altri dettagli. Se la funzione genera un errore, il runtime restituisce tale errore all'invoker.
Nota
La registrazione è soggetta alle quote di log. CloudWatch È possibile perdere i dati di log a causa del throttling o, in alcuni casi, quando un'istanza della funzione viene interrotta.
Principali differenze per le funzioni durevoli:
Lo stato viene mantenuto automaticamente tra i passaggi
Le funzioni possono sospendere l'esecuzione senza consumare risorse
I passaggi vengono ritentati automaticamente in caso di errore
I progressi vengono tracciati tramite checkpoint
Lambda dimensiona la funzione eseguendone altre istanze in base all'aumento della domanda e interrompendo le istanze in base alla diminuzione della domanda. Questo modello porta a variazioni nell'architettura delle applicazioni, come ad esempio:
-
Salvo diversa indicazione, le richieste in entrata possono essere elaborate fuori ordine o simultaneamente.
-
Non fare affidamento sulla durata delle istanze della funzione, ma archivia lo stato dell'applicazione in altri servizi.
-
Utilizza lo storage locale e gli oggetti a livello di classe per migliorare le prestazioni, mantenendo al minimo le dimensioni del pacchetto di distribuzione e la quantità di dati trasferiti nell'ambiente di esecuzione.
Per un'introduzione pratica al modello di programmazione preferito, consulta i seguenti capitoli.