Esecuzione di codice con Lambda - 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à.

Esecuzione di codice con Lambda

Quando scrivi una funzione Lambda, crei codice che verrà eseguito in un ambiente serverless unico. Comprendere come Lambda esegue effettivamente il codice implica due aspetti chiave: il modello di programmazione che definisce il modo in cui il codice interagisce con Lambda e il ciclo di vita dell'ambiente di esecuzione che determina il modo in cui Lambda gestisce l'ambiente di runtime del codice.

Il modello di programmazione Lambda

Il modello di programmazione funziona come un insieme comune di regole per il modo in cui Lambda interagisce con il tuo codice, indipendentemente dal fatto che tu stia scrivendo in Python, Java o in qualsiasi altro linguaggio supportato. Il modello di programmazione include il runtime e il gestore.

Per le funzioni standard:

  1. Lambda riceve un evento.

  2. Lambda utilizza il runtime per preparare l'evento in un formato utilizzabile dal codice.

  3. Il runtime invia l'evento formattato al gestore.

  4. Il tuo gestore elabora l'evento utilizzando il codice che hai scritto.

Per funzioni durevoli:

  1. Lambda riceve un evento

  2. Il runtime prepara sia l'evento che DurableContext

  3. Il tuo gestore può:

    • Fasi del processo con checkpoint automatico

    • Metti in pausa l'esecuzione senza consumare risorse

    • Riprendi dall'ultimo checkpoint riuscito

    • Mantieni lo stato tra i passaggi

Essenziale per questo modello è il gestore al quale cui Lambda invia gli eventi che devono essere elaborati dal codice. Consideralo come il punto di ingresso per il tuo codice. Quando Lambda riceve un evento, lo trasmette al gestore insieme ad alcune informazioni di contesto. Il gestore esegue quindi il codice per elaborare questi eventi: ad esempio, potrebbe leggere un file quando viene caricato su Amazon S3, analizzare un'immagine o aggiornare un database. Una volta che il codice ha terminato l'elaborazione di un evento, il gestore è pronto per elaborare quello successivo.

Il modello di esecuzione Lambda

Mentre il modello di programmazione definisce il modo in cui Lambda interagisce con il codice, l'ambiente di esecuzione è il luogo in cui Lambda esegue effettivamente la tua funzione: è uno spazio di calcolo sicuro e isolato creato appositamente per la tua funzione.

Ogni ambiente segue un ciclo di vita che varia tra funzioni standard e durevoli:

Funzioni standard (fino a 15 minuti):

  1. Inizializzazione: configurazione dell'ambiente e caricamento del codice

  2. Invocazione: esecuzione singola del codice della funzione

  3. Arresto: pulizia dell'ambiente

Funzioni durevoli (fino a 1 anno):

  1. Inizializzazione: configurazione dell'ambiente e dello stato durevole

  2. Invocazione: passaggi multipli con checkpoint automatico

  3. Stati di attesa: sospende l'esecuzione senza consumo di risorse

  4. Riprendi: riavvia dall'ultimo checkpoint

  5. Arresto: pulizia dello stato durevole

Questo ambiente gestisce aspetti importanti dell'esecuzione della funzione. Fornisce memoria alla funzione, insieme a una directory /tmp per l'archiviazione temporanea. Per Durable Functions, gestisce anche:

  • Persistenza automatica dello stato tra i passaggi

  • Archiviazione e ripristino dei checkpoint

  • Attendi il coordinamento statale

  • Monitoraggio dei progressi nelle esecuzioni di lunga durata