Creazione di pacchetti del contenuto dei 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à.

Creazione di pacchetti del contenuto dei 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.

In questa sezione viene descritto come creare pacchetti del contenuto dei livelli. Per ulteriori informazioni concettuali sui livelli e su come e perché utilizzarli, consulta Gestione delle dipendenze Lambda con livelli.

Il primo passaggio per creare un livello consiste nel raggruppare tutto il contenuto del livello in un archivio di file .zip. Perché le funzioni Lambda vengano eseguite su Amazon Linux, il contenuto del livello deve essere in grado di compilare e creare in un ambiente Linux.

Per garantire che il contenuto del layer funzioni correttamente in un ambiente Linux, consigliamo di creare il contenuto del layer utilizzando uno strumento come Docker o AWS Cloud9. AWS Cloud9 è un ambiente di sviluppo integrato basato su cloud (IDE) che fornisce l'accesso integrato a un server Linux per l'esecuzione e il test del codice. Per ulteriori informazioni, consulta Utilizzo dei livelli Lambda per semplificare il processo di sviluppo nel Compute Blog AWS .

Percorsi dei livelli per ciascun runtime Lambda

Quando si aggiunge un livello a una funzione, Lambda carica il contenuto del livello nella directory /opt di quell'ambiente di esecuzione. Per ogni runtime Lambda, la variabile PATH include percorsi di cartelle specifici nella directory /opt. Per garantire che la PATH variabile raccolga il contenuto del layer, il file layer.zip dovrebbe avere le sue dipendenze nei seguenti percorsi di cartella:

Runtime Path

Node.js

nodejs/node_modules

nodejs/node16/node_modules (NODE_PATH)

nodejs/node18/node_modules (NODE_PATH)

nodejs/node20/node_modules (NODE_PATH)

Python

python

python/lib/python3.x/site-packages (directory del sito)

Java

java/lib (CLASSPATH)

Ruby

ruby/gems/3.2.0 (GEM_PATH)

ruby/lib (RUBYLIB)

Tutti i runtime

bin (PATH)

lib (LD_LIBRARY_PATH)

Negli esempi seguenti viene illustrato come strutturare le cartelle per l'archivio .zip del livello.

Node.js
Esempio struttura di file per Node.js AWS X-Ray SDK
xray-sdk.zip └ nodejs/node_modules/aws-xray-sdk
Python
Esempio struttura di file per la libreria Requests
layer_content.zip └ python └ lib └ python3.11 └ site-packages └ requests └ <other_dependencies> (i.e. dependencies of the requests package) └ ...
Ruby
Esempio struttura dei file per la JSON gemma
json.zip └ ruby/gems/2.7.0/ | build_info | cache | doc | extensions | gems | └ json-2.1.0 └ specifications └ json-2.1.0.gemspec
Java
Esempio struttura del file per il file Jackson JAR
layer_content.zip └ java └ lib └ jackson-core-2.17.0.jar └ <other potential dependencies> └ ...
All
Esempio struttura dei file per la libreria JQ
jq.zip └ bin/jq

Per istruzioni specifiche sulla lingua sulla creazione, la creazione e l'aggiunta di un livello, consultate le pagine seguenti:

Si sconsiglia di utilizzare i layer per le seguenti lingue. Le pagine collegate contengono ulteriori informazioni.