View a markdown version of this page

Gestione delle dipendenze della funzione Lambda Event Function con livelli - 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à.

Gestione delle dipendenze della funzione Lambda Event Function con livelli

Un livello Lambda è un archivio di file .zip che può contenere codice o dati aggiuntivi. I livelli di solito contengono dipendenze dalla libreria, un runtime personalizzato o file di configurazione.

Esistono diversi motivi per cui potresti prendere in considerazione l'utilizzo dei livelli:

  • Per ridurre le dimensioni dei pacchetti di implementazione. Invece di includere tutte le dipendenze di Event Function insieme al codice Event Function nel pacchetto di distribuzione, inseriscile in un livello. Ciò mantiene i pacchetti di implementazione piccoli e organizzati.

  • Per separare la logica delle funzioni di base dalle dipendenze. Con i layer, puoi aggiornare le dipendenze della Event Function indipendentemente dal codice Event Function e viceversa. Ciò favorisce la separazione delle preoccupazioni e vi aiuta a concentrarvi sulla logica della Event Function.

  • Per condividere le dipendenze tra più funzioni. Dopo aver creato un layer, puoi applicarlo a qualsiasi numero di Event Functions presenti nel tuo account. Senza livelli, è necessario includere le stesse dipendenze in ogni singolo pacchetto di implementazione.

  • Per utilizzare l'editor di codice della console Lambda. L'editor di codice è uno strumento utile per testare rapidamente gli aggiornamenti minori del codice di Event Function. Tuttavia, non è possibile utilizzare l'editor se la dimensione del pacchetto di distribuzione è troppo grande. L'uso dei livelli riduce le dimensioni del pacchetto e può sbloccare l'utilizzo dell'editor di codice.

  • Per bloccare una versione SDK incorporata. Gli SDK incorporati potrebbero cambiare senza preavviso man mano che vengono AWS rilasciati nuovi servizi e funzionalità. Puoi bloccare una versione dell'SDK creando un livello Lambda con la versione specifica necessaria. La Event Function utilizza quindi sempre la versione nel layer, anche se la versione incorporata nel servizio cambia.

Se stai lavorando con Lambda Event Functions in Go o Rust, ti consigliamo di non usare i livelli. Per le funzioni di eventi Go e Rust, fornisci il codice Event Function come eseguibile, che include il codice Event Function compilato insieme a tutte le sue dipendenze. L'inserimento delle dipendenze in un livello impone alla Event Function di caricare manualmente gli assembly aggiuntivi durante la fase di inizializzazione, il che può aumentare i tempi di avvio a freddo. Per prestazioni ottimali per Go e Rust Event Functions, includi le tue dipendenze insieme al pacchetto di distribuzione.

Il diagramma seguente illustra le differenze architettoniche di alto livello tra due funzioni di evento che condividono dipendenze. Una utilizza i livelli Lambda e l'altra no.

Confronto tra due funzioni di evento che non utilizzano livelli e due funzioni di evento che condividono un livello.

Quando aggiungi un layer a una Event Function, Lambda estrae il contenuto del layer nella /opt directory dell'ambiente di esecuzione della tua Event Function. Tutti i runtime Lambda supportati in modo nativo includono percorsi a directory specifiche all'interno della directory /opt. Ciò consente alla funzione Event di accedere al contenuto del layer. Per ulteriori informazioni su questi percorsi specifici e su come creare correttamente i pacchetti per i livelli, consulta Creazione di pacchetti del contenuto dei livelli.

È possibile includere fino a cinque livelli per Event Function. Inoltre, puoi utilizzare i layer solo con Lambda Event Functions distribuite come archivio di file.zip. Per le funzioni di evento definite come immagine del contenitore, impacchettate il runtime preferito e tutte le dipendenze del codice quando create l'immagine del contenitore. Per ulteriori informazioni, consulta Lavorare con i livelli e le estensioni Lambda nelle immagini dei contenitori sul blog di AWS Compute.

Come usare i livelli

Per creare un livello, raccogli le tue dipendenze in un file .zip, in modo simile a come crei un normale pacchetto di implementazione. Più specificamente, il processo generale di creazione e utilizzo dei livelli prevede questi tre passaggi:

Livelli e versioni di livelli

Una versione di livello è un'istantanea immutabile di una versione specifica di un livello. Quando si crea un nuovo livello, Lambda crea una nuova versione del livello con un numero di versione pari a 1. Ogni volta che si pubblica un aggiornamento del livello, Lambda incrementa il numero di versione e crea una nuova versione.

Ogni flusso è identificato in modo univoco da un nome della risorsa Amazon (ARN) univoco. Quando si aggiunge un livello alla funzione evento, è necessario specificare l'esatta versione del livello che si desidera utilizzare (ad esempio,arn:aws:lambda:us-east-1:123456789012:layer:my-layer:1).