Ajout de couches aux fonctions - 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.

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 :

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)
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez la fonction à configurer.

  3. Sous Layers (Couches), choisissez Add a layer (Ajouter une couche).

  4. Sous Choisir une couche, choisissez une source de couche :

    1. 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.

    2. 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)
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez la fonction à configurer.

  3. Sous Layers (Couches), choisissez Edit (Modifier).

  4. Choisissez l’une des couches.

  5. Choisissez Merge earlier (Fusionner plus tôt) ou Merge later (Fusionner plus tard) pour ajuster l’ordre des couches.

  6. 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)
  1. Ouvrez la page Couches de la console Lambda.

  2. Choisissez la couche pour laquelle vous voulez mettre à jour la version.

  3. Choisissez l’onglet Fonctions utilisant cette version.

  4. Choisissez les fonctions que vous voulez modifier, puis cliquez sur Modifier.

  5. Pour Version de la couche, choisissez la version de la couche à modifier.

  6. Choisissez Update functions (Mettre à jour les fonctions).

Vous ne pouvez pas mettre à jour les versions des couches fonctionnelles d'un AWS compte à l'autre.

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" ] } ] }