Aggiunta di livelli alle funzioni - 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à.

Aggiunta di livelli alle funzioni

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.

In questa sezione viene spiegato come aggiungere un livello a una funzione Lambda. Per ulteriori informazioni concettuali sui livelli e su come e perché utilizzarli, consulta Lavorare con i livelli Lambda.

Prima di poter configurare una funzione Lambda per utilizzare un livello, è necessario:

Puoi aggiungere fino a cinque livelli a una funzione Lambda. La dimensione totale non decompressa della funzione e di tutti i livelli non può superare la quota della dimensione del pacchetto di distribuzione non compresso di 250 MB. Per ulteriori informazioni, consulta Quote di Lambda.

Le tue funzioni possono continuare a utilizzare qualsiasi versione del livello che hai già aggiunto, anche dopo che la versione del livello è stata eliminata o dopo la revoca del tuo permesso di accesso al livello. Non è tuttavia possibile creare una nuova funzione che utilizza la versione di un livello eliminato.

Nota

Assicurati che i livelli aggiunti a una funzione siano compatibili con il runtime e l'architettura del set di istruzioni della funzione.

Aggiunta di un livello a una funzione (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegli la funzione da configurare.

  3. In Layers (Livelli), scegli Add a layer (Aggiungi un livello)

  4. In Scegli un livello, scegli un'origine del livello:

    1. Per le origini dei livelli AWS o dei livelli personalizzati, scegli un livello dal menu a discesa. In Version (Versione), scegli una versione del livello dal menu a discesa.

    2. Per l'origine dei livelli Specifica un ARN, inserisci un ARN nella casella di testo e scegli Verifica. Quindi scegli Aggiungi.

L'ordine in cui si aggiungono i livelli è l'ordine in cui Lambda unisce il contenuto del livello nell'ambiente di esecuzione. Puoi modificare l'ordine di unione dei livelli utilizzando la console.

Aggiornamento dell'ordine di unione dei livelli per la tua funzione (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegli la funzione da configurare.

  3. In Layers (Livelli), scegli Edit (Modifica)

  4. Scegli uno dei livelli.

  5. Scegli Merge earlier (Unisci prima) o Merge later (Unisci in un secondo momento) per regolare l'ordine dei livelli.

  6. Selezionare Salva.

I livelli sono suddivisi in versioni. Il contenuto di ogni versione di livello non è modificabile. Il proprietario del livello può rilasciare nuove versioni del livello in modo da fornire contenuto appropriato. È possibile utilizzare la console per aggiornare la versione del livello collegata alle funzioni.

Aggiornamento delle versioni del livello per la funzione (console)
  1. Apri la pagina Layers (Livelli) nella console Lambda.

  2. Scegli il livello per il quale desideri aggiornare la versione.

  3. Seleziona la scheda Funzioni che utilizzano questa versione.

  4. Scegli le funzioni che desideri modificare, quindi scegli Modifica.

  5. Da Versione livello, seleziona la versione del livello a cui passare.

  6. Scegliere Update functions (Aggiorna funzioni).

Non è possibile aggiornare le versioni dei livelli delle funzioni negli account AWS.

Accesso al contenuto del livello dalla funzione

Se la tua funzione Lambda include livelli, Lambda estrae il contenuto del livello nella directory /opt nell'ambiente di esecuzione della funzione. Lambda estrae i livelli nell'ordine (dal basso verso l'alto) indicato dalla funzione. Lambda unisce le cartelle con lo stesso nome. Se lo stesso file viene visualizzato in più livelli, la funzione utilizza la versione dell'ultimo livello estratto.

Ogni runtime Lambda aggiunge cartelle di directory /opt specifiche alla variabile PATH. Il codice funzione può accedere al contenuto del livello senza dover specificare il percorso. Per ulteriori informazioni sulle impostazioni del percorso nell'ambiente di esecuzione Lambda, consulta Variabili di ambiente di runtime definite.

Fai riferimento a Percorsi dei livelli per ciascun runtime Lambda per sapere dove includere le librerie durante la creazione di un livello.

Se utilizzi un runtime Node.js o Python, puoi utilizzare l'editor di codice integrato nella console Lambda. Dovresti essere in grado di importare qualsiasi libreria che hai aggiunto come livello alla funzione corrente.

Ricerca di informazioni sul livello

Per trovare livelli nel tuo account compatibili con il runtime della tua funzione, usa l'ListLayersAPI. Ad esempio, puoi utilizzare il seguente comando list-layers dell'AWS Command Line Interface (CLI):

aws lambda list-layers --compatible-runtime python3.9

Verrà visualizzato un output simile al seguente:

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.9", "python3.10", "python3.11", ] } } ] }

Per elencare tutti i livelli nell'account, ometti l'opzione --compatible-runtime. I dettagli della risposta mostrano la versione più recente di ogni livello.

Puoi anche ottenere la versione più recente di un layer utilizzando l'ListLayerVersionsAPI. Ad esempio, puoi utilizzare il seguente comando list-layer-versions della CLI:

aws lambda list-layer-versions --layer-name my-layer

Verrà visualizzato un output simile al seguente:

{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }