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à.
Utilizzo dei livelli per le funzioni Lambda in Java
Usa i livelli Lambda per impacchettare codice e dipendenze che desideri riutilizzare in più funzioni. I livelli di solito contengono dipendenze dalla libreria, un runtime personalizzato o file di configurazione. La creazione di un livello prevede tre passaggi generali:
-
Crea un pacchetto per il contenuto del livello. Ciò significa creare un archivio di file con estensione .zip che contiene le dipendenze che desideri utilizzare nelle funzioni.
-
Crea il livello in Lambda.
-
Aggiungi il livello alle tue funzioni.
Argomenti
Crea un pacchetto per il contenuto del livello
Per creare un layer, raggruppa i pacchetti in un archivio di file.zip che soddisfi i seguenti requisiti:
-
Assicurati che la versione Java a cui fanno riferimento Maven o Gradle sia la stessa della versione Java della funzione che intendi distribuire. Ad esempio, per una funzione Java 21, il
mvn -v
comando dovrebbe elencare Java 21 nell'output. -
Le dipendenze devono essere archiviate nella
java/lib
directory, alla radice del file.zip. Per ulteriori informazioni, consulta Percorsi dei livelli per ciascun runtime Lambda. -
I pacchetti del livello devono essere compatibili con Linux. Le funzioni Lambda vengono eseguite su Amazon Linux.
-
Se il tuo layer include file binari o eseguibili nativi, devono avere come target la stessa architettura (x86_64 o arm64) della tua funzione.
È possibile creare livelli che contengono librerie Java di terze parti o moduli e pacchetti Java personalizzati. La procedura seguente utilizza Maven. Puoi anche usare Gradle per impacchettare il contenuto del tuo layer.
Per creare un livello utilizzando le dipendenze di Maven
-
Crea un progetto Apache Maven con un
pom.xml
file che definisce le tue dipendenze.L'esempio seguente include Jackson Databind
per l'elaborazione JSON. La <build>
sezione utilizza il maven-dependency-pluginper creare file JAR separati per ogni dipendenza invece di raggrupparli in un unico uber-jar. Se vuoi creare un uber-jar, usa il. maven-shade-plugin Esempio pom.xml
<dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> <configuration> <source>21</source> <target>21</target> <release>21</release> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.6.1</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build>
-
Compilare il progetto. Questo comando crea tutti i file JAR di dipendenza nella directory.
target/lib/
mvn clean package
-
Crea la struttura di directory richiesta per il tuo livello:
mkdir -p java/lib
-
Copia i file JAR delle dipendenze nella
java/lib
directory:cp target/lib/*.jar java/lib/
-
Comprimi il contenuto del livello:
La struttura delle cartelle del file.zip dovrebbe essere simile alla seguente:
java/ └── lib/ ├── jackson-databind-2.17.0.jar ├── jackson-core-2.17.0.jar └── jackson-annotations-2.17.0.jar
Nota
Assicurati che il tuo file.zip includa la
java
directory a livello principale allib
suo interno. Questa struttura assicura che Lambda possa localizzare e importare le tue librerie. Ogni dipendenza viene conservata come file JAR separato anziché raggruppata in un uber-jar.
Crea il layer in Lambda
È possibile pubblicare il layer utilizzando la console AWS CLI o la console Lambda.