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à.
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 Gestione delle dipendenze Lambda con i livelli.
Prima di poter configurare una funzione Lambda per utilizzare un livello, è necessario:
-
Assicurati di avere l'autorizzazione per chiamare l'GetLayerVersionAPI nella versione del layer. Per le funzioni incluse nella tua Account AWS, devi avere questa autorizzazione nella tua politica utente. Per utilizzare un livello in un altro account, il proprietario di quell'account deve concedere l'autorizzazione per l'account in una policy basata sulle risorse. Per alcuni esempi, consulta Concessione dell'accesso ai livelli Lambda ad altri account.
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)
Aprire la pagina Funzioni
della console Lambda. -
Scegli la funzione da configurare.
-
In Layers (Livelli), scegli Add a layer (Aggiungi un livello)
-
In Scegli un livello, scegli un'origine del livello:
-
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.
-
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)
Aprire la pagina Funzioni
della console Lambda. -
Scegli la funzione da configurare.
-
In Layers (Livelli), scegli Edit (Modifica)
-
Scegli uno dei livelli.
-
Scegli Merge earlier (Unisci prima) o Merge later (Unisci in un secondo momento) per regolare l'ordine dei livelli.
-
Seleziona 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)
-
Apri la pagina Layers
(Livelli) nella console Lambda. -
Scegli il livello per il quale desideri aggiornare la versione.
-
Seleziona la scheda Funzioni che utilizzano questa versione.
-
Scegli le funzioni che desideri modificare, quindi scegli Modifica.
-
Da Versione livello, seleziona la versione del livello a cui passare.
-
Scegliere Update functions (Aggiorna funzioni).
Non è possibile aggiornare le versioni del Function Layer tra più AWS account.
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, è possibile utilizzare il seguente comando list-layers
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.
È inoltre possibile 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"
]
}
]
}