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

Date de la dernière mise à jour : 30/04/2020

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

Les versions du kit SDK AWS intégrées à l'environnement d'exécution Lambda ne sont pas toujours à jour, il se peut donc que certaines nouvelles fonctionnalités du kit SDK n'y soient pas disponibles. Utilisez les couches Lambda pour intégrer la dernière version d'un kit SDK AWS à votre package de déploiement de fonction Lambda.

Remarque : cette solution augmente la taille du package de déploiement de votre fonction. Pour plus d'informations sur les ressources de stockage Lambda, consultez la section Limites AWS Lambda.

Les instructions suivantes utilisent l'environnement d'exécution Node.js 10.x comme exemple. Pour obtenir la liste des environnements d'exécution pour Node.js et d'autres langages, ainsi que les versions du kit SDK AWS actuellement utilisées par Lambda, consultez Runtimes AWS Lambda.

Solution

(Facultatif) Vérification de la version du kit SDK AWS

Pour vérifier la version du kit SDK AWS dont vous disposez actuellement, procédez comme suit :

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

2.    Mettez à jour le code de votre fonction afin qu'elle renvoie la version du kit SDK AWS. Si vous utilisez l'environnement d'exécution Node.js 10x, vous pouvez utiliser cet exemple de code :

const AWS = require('aws-sdk')

exports.handler = async (event) => {
return AWS.VERSION;
};

3.    Exécutez 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 identifiée dans la documentation du kit SDK AWS.

Installation et création d'un package avec la dernière version du kit SDK AWS

Remarque : les packages de déploiement doivent être compatibles avec l'environnement Lambda. Pour les étapes suivantes, il est recommandé d'utiliser le système d'exploitation correspondant à votre environnement d'exécution, comme indiqué dans Runtimes AWS Lambda.

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

1.    Créez un répertoire de travail :

mkdir -p aws-sdk-layer/nodejs

2.    Accédez au répertoire de travail :

cd aws-sdk-layer/nodejs

3.    Installez la dernière version du kit SDK AWS :

npm install aws-sdk

4.    Créez un fichier .zip à charger sur la couche.

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

5.    (Facultatif) Vérifiez la version du kit SDK AWS que vous avez installée :

cat package-lock.json

La sortie ressemble à ce qui suit :

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

Création et ajout d'une couche à votre fonction (interface de ligne de commande AWS)

Remarque : vous pouvez également utiliser la console Lambda pour créer une couche et l'ajouter à votre fonction. Consultez la section suivante pour obtenir des instructions sur la console.

1.    Depuis l'interface de ligne de commande AWS (AWS CLI), exécutez la commande Lambda publish-layer-version :

Remarque : remplacez node_sdk par le nom que vous souhaitez donner à la couche. Si vous le souhaitez, vous pouvez également remplacer « My layer » par une description de la couche.

aws lambda publish-layer-version --layer-name node_sdk --description "My layer" --license-info "MIT" --compatible-runtimes nodejs10.x --zip-file fileb://../package.zip

Dans la sortie, notez la valeur LayerVersionArn. Pour plus d'informations, consultez la section Gestion des couches.

2.    Exécutez la commande Lambda update-function-configuration :

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 de l'étape précédente.

aws lambda update-function-configuration --function-name my-function --layers arn:aws:lambda:us-east-2:123456789012:layer:node_sdk:1

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

Création et ajout d'une couche à votre fonction (console Lambda)

1.    Ouvrez la page Couches de la console Lambda.

2.    Sur la page Couches, sélectionnez Créer une couche.

3.    Sur la page Créer une couche, procédez comme suit :
Nommez la règle dans le champ Nom.
(Facultatif) Pour Description - facultatif, saisissez une description pour la couche.
Sélectionnez Charger un fichier .ZIP.
Sélectionnez Charger, puis le 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 Node.js 10x, sélectionnez Node.js 10x.
(Facultatif) Pour Licence - facultatif, saisissez les informations de licence logicielle de la couche.
Sélectionnez Créer.

4.    Sur la page Fonctions de la console Lambda, sélectionnez votre fonction.

5.    Sous Concepteur, sous le nom de votre fonction, sélectionnez Couches.

6.    Sous Couches, sélectionnez Ajouter une couche.

7.    Sur la page Ajouter une couche à la fonction, sous Sélection de la couche, sélectionnez Sélectionner dans la liste des couches compatibles avec l'environnement d'exécution.

8.    Sous Couches compatibles, procédez comme suit :
Pour Nom, sélectionnez la couche que vous avez créée.
Pour Version, sélectionnez 1.

9.    Sélectionnez Ajouter.

10.    Sélectionnez Enregistrer.

(Facultatif) Vérification de la version du kit SDK AWS

Exécutez à nouveau votre fonction Lambda. Votre fonction renvoie la dernière version du kit SDK AWS que vous avez installée précédemment à l'aide de npm.

Vous pouvez vérifier la dernière version dans le fichier CHANGELOG du kit SDK AWS que vous utilisez. Par exemple, consultez Changelog for AWS SDK for JavaScript sur GitHub.


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

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?