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.
Gestion des dépendances des fonctions d'événement Lambda à l'aide de couches
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.
Vous pouvez envisager d'utiliser des couches pour plusieurs raisons :
-
Pour réduire la taille de vos packages de déploiement. Au lieu d'inclure toutes les dépendances de votre fonction d'événement ainsi que le code de votre fonction d'événement dans votre package de déploiement, placez-les dans une couche. Cela permet de maintenir la taille et l'organisation des packages de déploiement.
-
Pour séparer la logique des fonctions de base des dépendances. Avec les couches, vous pouvez mettre à jour les dépendances de votre fonction d'événement indépendamment du code de votre fonction d'événement, et vice versa. Cela favorise la séparation des préoccupations et vous aide à vous concentrer sur la logique de votre fonction événementielle.
-
Pour partager les dépendances entre plusieurs fonctions. Après avoir créé une couche, vous pouvez l'appliquer à n'importe quel nombre de fonctions événementielles de votre compte. Sans couches, vous devez inclure les mêmes dépendances dans chaque package de déploiement individuel.
-
Pour utiliser l'éditeur de code de la console Lambda. L'éditeur de code est un outil utile pour tester rapidement les mises à jour mineures du code Event Function. Toutefois, vous ne pouvez pas utiliser l'éditeur si la taille de votre package de déploiement est trop importante. L'utilisation de couches réduit la taille de votre package et peut débloquer l'utilisation de l'éditeur de code.
-
Pour verrouiller une version du SDK intégré. Les SDK intégrés peuvent être modifiés sans préavis au fur et à mesure de la AWS sortie de nouveaux services et fonctionnalités. Vous pouvez verrouiller une version du kit SDK en créant une couche Lambda avec la version spécifique requise. La fonction d'événement utilise alors toujours la version de la couche, même si la version intégrée au service change.
Si vous utilisez des fonctions d'événement Lambda dans Go ou Rust, nous vous déconseillons d'utiliser des couches. Pour les fonctions d'événement Go et Rust, vous fournissez le code de votre fonction d'événement sous forme d'exécutable, qui inclut votre code de fonction d'événement compilé ainsi que toutes ses dépendances. Le fait de placer vos dépendances dans une couche oblige votre fonction d'événement à charger manuellement des assemblages supplémentaires pendant la phase d'initialisation, ce qui peut augmenter les temps de démarrage à froid. Pour des performances optimales pour Go et Rust Event Functions, incluez vos dépendances dans votre package de déploiement.
Le schéma suivant illustre les différences architecturales de haut niveau entre deux fonctions d'événement qui partagent des dépendances. L'un utilise des couches Lambda, l'autre non.
Lorsque vous ajoutez une couche à une fonction d'événement, Lambda extrait le contenu de la couche dans le /opt répertoire de l'environnement d'exécution de votre fonction d'événement. Toutes les exécutions Lambda prises en charge en mode natif incluent des chemins vers des répertoires spécifiques dans le répertoire /opt. Cela permet à votre fonction d'événement d'accéder au contenu de votre couche. Pour plus d'informations sur ces chemins spécifiques et sur la manière d'empaqueter correctement vos couches, consultez Empaquetage du contenu de votre couche.
Vous pouvez inclure jusqu'à cinq couches par fonction d'événement. Vous pouvez également utiliser des couches uniquement avec des fonctions d'événement Lambda déployées sous forme d'archive de fichiers .zip. Pour les fonctions d'événement définies comme une image de conteneur, empaquetez votre environnement d'exécution préféré et toutes les dépendances du code lorsque vous créez l'image de conteneur. Pour plus d'informations, consultez la section Utilisation de couches et d'extensions Lambda dans des images de conteneur
Rubriques
Utilisation des couches
Pour créer une couche, empaquetez vos dépendances dans un fichier .zip, de la même manière que vous créer un package de déploiement normal. Plus précisément, le processus général de création et d'utilisation de couches comporte les trois étapes suivantes :
-
Empaquetez d'abord le contenu de votre couche. Cela implique de créer une archive de fichiers .zip. Pour plus d’informations, consultez Empaquetage du contenu de votre couche.
-
Créez ensuite la couche dans Lambda. Pour plus d’informations, consultez Création et suppression de couches dans Lambda.
-
Ajoutez la couche à vos fonctions d'événement. Pour plus d’informations, consultez Ajouter des couches aux fonctions événementielles.
Couches et versions de couches
Une version de couche est un instantané immuable d'une version spécifique d'une couche. Lorsque vous créez une nouvelle couche, Lambda crée une nouvelle version de couche avec un numéro de version de 1. Chaque fois que vous publiez une mise à jour de la couche, Lambda incrémente le numéro de version et crée une nouvelle version de couche.
Chaque version de couche est identifiée par un Amazon Resource Name (ARN) unique. Lorsque vous ajoutez une couche à la fonction d'événement, vous devez spécifier la version de couche exacte que vous souhaitez utiliser (par exemple,arn:aws:lambda:us-east-1:123456789012:layer:my-layer:).1