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.
Ajout de couches aux fonctions
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 ajouter une couche à une fonction Lambda. 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.
Avant de pouvoir configurer une fonction Lambda pour utiliser une couche, vous devez :
-
Assurez-vous que vous êtes autorisé à appeler la version GetLayerVersionAPIsur la couche. Pour les fonctions de votre Compte AWS, vous devez disposer de cette autorisation dans votre politique utilisateur. Pour utiliser une couche dans un autre compte, le propriétaire de ce compte doit accorder l’autorisation à votre compte dans une stratégie basée sur les ressources. Pour obtenir des exemples, consultez Octroi de l'accès à la couche Lambda à d'autres comptes.
Vous pouvez ajouter jusqu’à cinq couches à une fonction Lambda. La taille totale décompressée de la fonction avec toutes les couches ne peut pas dépasser le quota de taille de package de déploiement décompressé de 250 Mo. Pour de plus amples informations, veuillez consulter Quotas Lambda.
Vos fonctions peuvent continuer à utiliser n’importe quelle version de couche que vous avez déjà ajoutée, même après la suppression de cette version de couche ou après la révocation de votre autorisation d’accès à la couche. Toutefois, vous ne pouvez pas créer une nouvelle fonction qui utilise une version de couche supprimée.
Note
Assurez-vous que les couches que vous ajoutez à une fonction sont compatibles avec l’exécution et l’architecture de l’ensemble des instructions de la fonction.
Pour ajouter une couche à une fonction (console)
Ouvrez la page Functions
(Fonctions) de la console Lambda. -
Choisissez la fonction à configurer.
-
Sous Layers (Couches), choisissez Add a layer (Ajouter une couche).
-
Sous Choisir une couche, choisissez une source de couche :
-
Pour les sources de couches couches AWS ou Couches personnalisées, choisissez une couche dans le menu déroulant. Sous Version, choisissez une version de couche dans le menu déroulant.
-
Pour Spécifier une source de ARN couche, entrez un ARN dans la zone de texte et choisissez Vérifier. Choisissez ensuite Ajouter.
-
L’ordre dans lequel vous ajoutez les couches correspond à l’ordre dans lequel Lambda fusionne ultérieurement le contenu de la couche dans l’environnement d’exécution. Vous pouvez modifier l’ordre de fusion des couches à l’aide de la console.
Pour mettre à jour l’ordre de fusion des couches pour votre fonction (console)
Ouvrez la page Functions
(Fonctions) de la console Lambda. -
Choisissez la fonction à configurer.
-
Sous Layers (Couches), choisissez Edit (Modifier).
-
Choisissez l’une des couches.
-
Choisissez Merge earlier (Fusionner plus tôt) ou Merge later (Fusionner plus tard) pour ajuster l’ordre des couches.
-
Choisissez Save (Enregistrer).
Les couches sont versionnées. Le contenu de chaque version de couche est immuable. Le propriétaire d’une couche peut publier une nouvelle version de la couche pour fournir du contenu mis à jour. Vous pouvez utiliser la console pour mettre à jour la version de couche associée à vos fonctions.
Pour mettre à jour les versions des couches de votre fonction (console)
-
Ouvrez la page Couches
de la console Lambda. -
Choisissez la couche pour laquelle vous voulez mettre à jour la version.
-
Choisissez l’onglet Fonctions utilisant cette version.
-
Choisissez les fonctions que vous voulez modifier, puis cliquez sur Modifier.
-
Pour Version de la couche, choisissez la version de la couche à modifier.
-
Choisissez Update functions (Mettre à jour les fonctions).
Vous ne pouvez pas mettre à jour les versions des couches fonctionnelles d'un AWS compte à l'autre.
Rubriques
Accès au contenu de la couche à partir de la fonction
Si la fonction Lambda comprend des couches, Lambda extrait le contenu de la couche dans le répertoire /opt
dans l’environnement d’exécution de la fonction. Lambda extrait les couches dans l’ordre (bas à élevé) répertorié par la fonction. Lambda fusionne les dossiers portant le même nom. Si le même fichier apparaît dans plusieurs couches, la fonction utilise la version de la dernière couche extraite.
Chaque exécution Lambda ajoute des dossiers de répertoire /opt
spécifiques à la variable PATH
. Votre code de fonction peut accéder au contenu de la couche sans avoir à spécifier le chemin d’accès. Pour plus d’informations sur les paramètres de chemin d’accès dans l’environnement d’exécution Lambda, consultez Variables d’environnement d’exécution définies.
Reportez-vous à Chemins d'accès de couche pour chaque exécution Lambda pour savoir où inclure vos bibliothèques lors de la création d’une couche.
Si vous utilisez une exécution Node.js ou Python, vous pouvez utiliser l’éditeur de code intégré à la console Lambda. Vous devriez pouvoir importer n’importe quelle bibliothèque que vous avez ajoutée en tant que couche à la fonction en cours.
Recherche d’informations sur la couche
Pour trouver dans votre compte des couches compatibles avec le temps d'exécution de votre fonction, utilisez le ListLayersAPI. Par exemple, vous pouvez utiliser la commande suivante list-layers
AWS Command Line Interface (CLI) :
aws lambda list-layers --compatible-runtime python3.9
Vous devez voir des résultats similaires à ce qui suit :
{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.9", "python3.10", "python3.11", ] } } ] }
Pour répertorier toutes les couches de votre compte, ignorez l’option --compatible-runtime
. Les détails de la réponse indiquent la dernière version de chaque couche.
Vous pouvez également obtenir la dernière version d'une couche à l'aide du ListLayerVersionsAPI. Par exemple, vous pouvez utiliser la list-layer-versions
CLI commande suivante :
aws lambda list-layer-versions --layer-name my-layer
Vous devez voir des résultats similaires à ce qui suit :
{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }