

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
<a name="packaging-layers"></a>

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](runtimes-custom.md) 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 i livelli](chapter-layers.md).

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](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html), il contenuto del livello deve essere in grado di compilare e creare in un ambiente Linux.

Per garantire che il contenuto del livello funzioni correttamente in un ambiente Linux, si consiglia di creare il contenuto utilizzando uno strumento come [Docker](https://docs.docker.com/get-docker).

**Topics**
+ [

## Percorsi dei livelli per ciascun runtime Lambda
](#packaging-layers-paths)

## Percorsi dei livelli per ciascun runtime Lambda
<a name="packaging-layers-paths"></a>

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 variabile raccolga il contenuto del livello, il file .zip del livello dovrebbe avere le sue dipendenze nei seguenti percorsi di cartella:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/packaging-layers.html)

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

------
#### [ Node.js ]

**Example struttura di file per l'SDK AWS X-Ray per Node.js**  

```
xray-sdk.zip
└ nodejs/node_modules/aws-xray-sdk
```

------
#### [ Python ]

**Example**  

```
python/              # Required top-level directory
└── requests/
└── boto3/
└── numpy/
└── (dependencies of the other packages)
```

------
#### [ Ruby ]

**Example struttura dei file per gem JSON**  

```
json.zip
└ ruby/gems/3.4.0/
               | build_info
               | cache
               | doc
               | extensions
               | gems
               | └ json-2.1.0
               └ specifications
                 └ json-2.1.0.gemspec
```

------
#### [ Java ]

**Example struttura dei file per il file JAR Jackson**  

```
layer_content.zip
└ java
    └ lib
        └ jackson-core-2.17.0.jar
        └ <other potential dependencies>
        └ ...
```

------
#### [ All ]

**Example struttura dei file per la libreria JQ**  

```
jq.zip
└ bin/jq
```

------

Per istruzioni specifiche del linguaggio sull'impacchettamento, la creazione e l'aggiunta di un livello, consulta le pagine seguenti:
+ **Node.js** – [Utilizzo dei livelli per le funzioni Lambda Node.js](nodejs-layers.md)
+ **Python** – [Utilizzo dei livelli per le funzioni Lambda in Python](python-layers.md)
+ **Ruby** – [Utilizzo dei livelli per le funzioni Lamba di Ruby](ruby-layers.md)
+ **Java**: [Utilizzo dei livelli per le funzioni Lambda in Java](java-layers.md)

Consigliamo di non utilizzare i livelli per gestire le dipendenze per le funzioni Lambda scritte in Go. Questo perché le funzioni Lambda in Go vengono compilate in un unico eseguibile, che viene fornito a Lambda quando si distribuisce la funzione. Questo eseguibile contiene il codice di funzione compilato, insieme a tutte le sue dipendenze. L'uso dei livelli non solo complica questo processo, ma comporta anche un aumento dei tempi di avvio a freddo, poiché le funzioni devono caricare manualmente assiemi aggiuntivi in memoria durante la fase di inizializzazione.

Per utilizzare dipendenze esterne con i gestori Go, includile direttamente nel pacchetto di implementazione.