Esecuzione di codice con Lambda - AWS Lambda

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

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

  1. Lambda riceve un evento.

  2. Lambda utilizza il runtime (come Python o Java) per preparare l'evento in un formato utilizzabile dal codice.

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

  4. Il gestore elabora l'evento utilizzando il codice scritto nella funzione Lambda.

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

Sebbene il modello di programmazione definisca il modo in cui Lambda interagisce con il codice, Lambda esegue effettivamente la funzione in Ambiente di esecuzione, che è uno spazio di calcolo sicuro e isolato creato appositamente per la tua funzione. Ogni ambiente segue un ciclo di vita di tre fasi.

  1. Inizializzazione: Lambda crea l'ambiente e prepara tutto per eseguire la funzione. Ciò include la configurazione del runtime scelto, il caricamento del codice e l'esecuzione di qualsiasi codice di startup da te scritto.

  2. Invocazione: quando arrivano gli eventi, Lambda utilizza questo ambiente per eseguire la funzione. L'ambiente può elaborare molti eventi nel tempo, uno dopo l'altro. Man mano che si verificano altri eventi, Lambda crea ambienti aggiuntivi per gestire l'aumento della domanda. Quando la domanda diminuisce, Lambda blocca gli ambienti che non sono più necessari.

  3. Arresto: alla fine, Lambda chiuderà gli ambienti. Prima di farlo, dà alla tua funzione la possibilità di ripulire le attività rimanenti.

Questo ambiente gestisce aspetti importanti dell'esecuzione della funzione. Fornisce memoria alla funzione, insieme a una directory /tmp per l'archiviazione temporanea. Mantiene risorse come le connessioni al database tra le invocazioni, in modo che la funzione possa riutilizzarle. Offre funzionalità come la simultaneità fornita, in cui Lambda prepara gli ambienti in anticipo per migliorare le prestazioni.