Empaquetage du contenu de votre couche - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Empaquetage du contenu de votre couche

Une couche Lambda est une archive de fichier .zip qui contient du code ou des données supplémentaires. Les couches contiennent généralement des dépendances de bibliothèque, une exécution personnalisée, ou des fichiers de configuration.

Cette section explique comment empaqueter correctement le contenu de votre couche. Pour plus d'informations conceptuelles sur les couches et les raisons pour lesquelles vous pourriez envisager de les utiliser, consultez Gestion des dépendances Lambda à l'aide de couches.

La première étape de la création d'une couche consiste à regrouper l'ensemble du contenu de la couche dans une archive de fichiers .zip. Parce que les fonctions Lambda s'exécutent sur Amazon Linux, le contenu de votre couche doit pouvoir être compilé et construit dans un environnement Linux.

Pour garantir que le contenu de votre couche fonctionne correctement dans un environnement Linux, nous vous recommandons de créer le contenu de votre couche à l'aide d'un outil tel que Docker ou AWS Cloud9. AWS Cloud9 est un environnement de développement intégré (IDE) basé sur le cloud qui fournit un accès intégré à un serveur Linux pour exécuter et tester du code. Pour plus d'informations, consultez Utilisation de couches Lambda pour simplifier votre processus de développement sur le blog AWS Compute.

Chemins d'accès de couche pour chaque exécution Lambda

Lorsque vous ajoutez une couche à une fonction, Lambda charge le contenu de la couche dans le répertoire /opt de cet environnement d'exécution. Pour chaque exécution Lambda, la variable PATH inclut déjà des chemins de dossiers spécifiques dans le répertoire /opt. Pour garantir que la PATH variable capte le contenu de votre couche, le fichier .zip de votre couche doit avoir ses dépendances dans les chemins de dossier suivants :

Chemins d'accès de couche pour chaque exécution Lambda
Runtime Chemin

Node.js

nodejs/node_modules

nodejs/node14/node_modules (NODE_PATH)

nodejs/node16/node_modules (NODE_PATH)

nodejs/node18/node_modules (NODE_PATH)

Python

python

python/lib/python3.x/site-packages (répertoires de site)

Java

java/lib (CLASSPATH)

Ruby

ruby/gems/3.2.0 (GEM_PATH)

ruby/lib (RUBYLIB)

Toutes les exécutions

bin (PATH)

lib (LD_LIBRARY_PATH)

Les exemples suivants montrent comment structurer les dossiers dans votre couche d'archive .zip.

Node.js
Exemple structure de fichier pour le AWS X-Ray SDK pour Node.js
xray-sdk.zip └ nodejs/node_modules/aws-xray-sdk
Python
Exemple structure de fichier pour la bibliothèque de requêtes
layer_content.zip └ python └ lib └ python3.11 └ site-packages └ requests └ <other_dependencies> (i.e. dependencies of the requests package) └ ...
Ruby
Exemple structure de fichiers pour la gem JSON
json.zip └ ruby/gems/2.7.0/ | build_info | cache | doc | extensions | gems | └ json-2.1.0 └ specifications └ json-2.1.0.gemspec
Java
Exemple structure de fichiers pour le fichier JAR Jackson
layer_content.zip └ java └ lib └ jackson-core-2.17.0.jar └ <other potential dependencies> └ ...
All
Exemple structure de fichiers pour la bibliothèque jq
jq.zip └ bin/jq

Pour obtenir des instructions spécifiques à la langue relatives à l'emballage, à la création et à l'ajout d'une couche, reportez-vous aux pages suivantes :