Comment intégrer la dernière version du kit SDK AWS pour JavaScript à ma fonction Lambda Node.js à l'aide de couches ?

Dernière mise à jour : 12/05/2021

L'environnement d'exécution AWS Lambda ne dispose pas de certaines fonctions de la dernière version d'un kit SDK AWS. Comment intégrer la dernière version du kit SDK AWS pour JavaScript à ma fonction Lambda Node.js à l'aide de couches ?

Brève description

Pour intégrer la dernière version d'un kit SDK AWS dans le package de déploiementde votre fonction Lambda, créez une couche Lambda, puis ajoutez-la à votre fonction. Vous pouvez utiliser l'interface de ligne de commande AWS (AWS CLI) ou la console Lambda pour créer une couche Lambda et l'ajouter à votre fonction.

La procédure suivante utilise le moteur d'exécution Node.js 14x comme exemple. Pour obtenir la liste complète des environnements d’exécution et des versions des kits SDK AWS que Lambda utilise actuellement, consultez Environnements d'exécution AWS Lambda.

Remarque : la solution suivante augmente la taille du package de déploiement de votre fonction. Pour plus d'informations sur les limites de stockage Lambda, voir Quotas de Lambda.

Résolution

Remarque : si vous des erreurs s’affichent lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

(Facultatif) Vérifiez la version du kit SDK AWS qu’utilise votre fonction

Pour vérifier la version du kit SDK AWS utilisé par votre fonction, procédez comme suit :

1.    Créez une fonction dans la console Lambda.

2.    Mettez à jour le code de la fonction pour renvoyer la version du kit SDK AWS qu'elle utilise lorsque la fonction est appelée.

Code Node.js pour qu'une fonction Lambda indique la version du kit SDK AWS qu'elle utilise

const AWS = require('aws-sdk')
 
exports.handler = async (event) => {
return AWS.VERSION;
};

3.    Appelez votre fonction. La fonction renvoie la version du kit SDK AWS.

4.    Comparez la version du kit SDK AWS renvoyée par votre fonction à la dernière version du kit SDK AWS dans la documentation du kit SDK AWS.

Installer et packager la dernière version du kit SDK AWS

Remarque : les packages de déploiement doivent être compatibles avec l'environnement d'exécution Lambda que vous utilisez. Il est recommandé d'utiliser le même système d'exploitation pour votre environnement d'exécution que celui spécifié dans les environnements d’exécution AWS Lambda. Par exemple, en lançant une instance Amazon Elastic Compute Cloud (Amazon EC2) compatible.

Dans un environnement de développement local compatible Lambda, procédez comme suit :

1.    Créez un répertoire de travail en exécutant la commande d'interface de ligne de commande (CLI) suivante :

mkdir -p aws-sdk-layer/nodejs

2.    Ensuite, passez dans le répertoire de travail en exécutant la commande suivante :

cd aws-sdk-layer/nodejs

3.    Pour installer la dernière version du kit SDK AWS, utilisez une instance compatible Amazon Linux 2 pour exécuter la commande suivante :

npm install aws-sdk

Pour plus d'informations, consultez Tutoriel : Configuration de Node.js sur une instance Amazon EC2.

Remarque : il est recommandé d'utiliser un environnement Amazon Linux 2 lors du développement de ressources Lambda.

-ou-

Si vous utilisez un système d'exploitation Windows ou macOS pour le développement, vous pouvez utiliser Docker pour exécuter la commande suivante :

docker run --entrypoint "" -v "$PWD":/var/task "public.ecr.aws/lambda/nodejs:14" /bin/sh -c "npm install aws-sdk; exit"

Remarque : veillez à utiliser la version la plus récente de Docker avant d'exécuter la commande.

4.    Créez un fichier .zip à télécharger sur votre couche Lambda en exécutant la commande suivante :

zip -r ../package.zip ../

5.    (Facultatif) Vérifiez la version du kit SDK AWS que vous avez installé en exécutant la commande suivante :

cat package-lock.json

Exemple de sortie de commande

{
  "requires": true,
  "lockfileVersion": 1,
  "dependencies": {
    "aws-sdk": {
      "version": "2.888.0",
...

Pour créer une couche Lambda et l'ajouter à votre fonction à l'aide de l'interface de ligne de commande AWS

1.    Pour créer une couche Lambda qui comprend la dernière version du kit SDK AWS que vous souhaitez utiliser, exécutez la commande de l'interface de ligne de commande AWS publish-layer-version suivante :

Remarque : remplacez node_sdk par le nom que vous souhaitez donner à la couche. Remplacez My layer par une description de la couche. Remplacez la valeur compatible runtimes par l'environnement d'exécution que vous utilisez. Remplacez la valeur region par la région AWS dans laquelle se trouvent votre fonction et votre couche.

aws lambda publish-layer-version --layer-name node_sdk --description "My layer" --license-info "MIT" --compatible-runtimes nodejs14.x --zip-file fileb://../package.zip --region <specify a region>

Vous avez besoin de la valeur LayerVersionArn qui se trouve dans la sortie de la commande pour terminer l'étape suivante.

2.    Pour ajouter la couche à votre fonction, exécutez la commande update-function-configuration suivante :

Remarque : remplacez my-function par le nom de votre fonction. Remplacez arn:aws:lambda:us-east-2:123456789012:layer:node_sdk:1 par la valeur LayerVersionArn qui se trouvait dans la sortie de la commande publish-layer-version.

aws lambda update-function-configuration --function-name my-function --layers arn:aws:lambda:us-east-2:123456789012:layer:node_sdk:1 --region <specify a region>

Pour plus d'informations, consultez Configuration d'une fonction pour utiliser les couches.

Pour créer une couche Lambda et l'ajouter à votre fonction à l'aide de la console Lambda

1.    Ouvrez la page Couches de la console Lambda.

2.    Choisissez Créer une couche. Puis, procédez comme suit :
Nommez la nouvelle couche dans le champ Nom.
(Facultatif) Pour Description – facultatif, saisissez une description pour la couche.
Sélectionnez Charger un fichier .ZIP.
Choisissez Charger. Ensuite, choisissez le nom du fichier .zip de votre package de déploiement.
Pour Environnements d'exécution compatibles – facultatif, sélectionnez un ou plusieurs environnements d'exécution compatibles. Pour l'exemple de cet article, Node.js 14X.
(Facultatif) Pour Licence – facultatif, saisissez les informations de licence logicielle applicables de la couche.
Sélectionnez Créer.

3.    Ouvrez la page Fonctions dans la console Lambda. Choisissez ensuite le nom de la fonction à laquelle vous souhaitez ajouter la couche.

4.    Sous Présentation des fonctions, choisissez Couches.

5.    Sélectionnez Ajouter une couche.

6.    Sous Choisir une couche, choisissez Couches personnalisées. Puis, procédez comme suit :
Choisissez le nom de la couche que vous avez créée.
Pour Version, choisissez la version de la couche que vous souhaitez utiliser. Par exemple, 1.
Sélectionnez Ajouter.

(Facultatif) Tester la configuration

Appelez votre fonction en suivant les étapes de la section (Facultatif) Vérifiez la version du kit SDK AWS qu’utilise votre fonction. La fonction renvoie la version du kit SDK AWS.

Vous pouvez aussi vérifier la dernière version du kit SDK AWS dans le fichier CHANGELOG du kit SDK AWS que vous utilisez. Pour plus d'informations, consultez Changelog for AWS SDK for JavaScript sur GitHub.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?