Kien vous présente la marche à suivre pour
créer un package de déploiement Lambda
pour Node.js

J'ai créé une fonction AWS Lambda dans Node.js, mais je reçois une erreur lors de l'appel. Comment puis-je créer mon package de déploiement de manière à ne pas recevoir d'erreur ?

Une erreur commune concernant les fonctions Lambda dans Node.js est « Module introuvable. » Cette erreur résulte généralement du fait que la structure des dossiers de votre package de déploiement pour le service Lambda n’est pas correcte pour le chargement de vos modules et bibliothèques ou que les autorisations de fichier ne sont pas correctes. (Lambda exige des autorisations en lecture globale.)

Suivez ces instructions pour créer un package de déploiement incluant le code de fonction se trouvant à la racine du fichier zip avec des autorisations de lecture et d’exécution pour tous les fichiers.

Linux et macOS

Installez les dépendances dans le dossier du projet de fonction

Remarque : la plupart des modules Node.js sont indépendants de la plate-forme, mais certains sont compilés pour des environnements de système d’exploitation spécifiques. Lambda fonctionne dans un environnement Linux. Lorsque vous installez les modules avec npm, nous vous recommandons de créer le fichier zip dans un environnement Linux pour vous assurer que les dépendances de la plate-forme correcte sont incluses.

1.    Dans l’interface de ligne de commande (CLI), changez les répertoires pour indiquer votre dossier de projet. Par exemple :

cd /project-folder-name

Remarque : remplacez project-folder-name par le véritable nom de votre dossier de projet.

2.    Installez vos dépendances localement dans votre dossier de projet de fonction à l’aide de la commande npm install package-name, en remplaçant package-name par le véritable nom du package. Par exemple, pour installer les modules AWS SDK for JavaScript à la racine de votre dossier de projet, exécutez cette commande :

npm install aws-sdk

Conseil : Lambda contient les bibliothèques du kit SDK AWS JavaScript dans sa configuration de conteneur de base. Mais si vous devez utiliser une autre version de la bibliothèque, vous pouvez aussi inclure une copie locale. Pour plus d’informations concernant l’environnement Lambda et les bibliothèques prises en charge, consultez Environnement d’exécution et bibliothèques disponibles Lambda.

Exécutez la commande pour chaque module nécessaire pour votre fonction Lambda.

Remarque : il existe une limite de 250 Mo en matière de taille de votre fonction pour les fichiers dézippés. Incluez uniquement les bibliothèques ont vous avez besoin pour que votre fonction fonctionne.

Créer un package de déploiement

Dans l’interface de ligne de commande, exécutez cette commande :

zip -r ../function-name.zip .

Remarque : remplacez function-name par le nom de fichier que vous souhaitez donner à votre package de déploiement.

Cela place tous les fichiers du dossier de projet dans un fichier .zip situé dans le dossier parent.

Vérifier le package de déploiement

1.    Dans l’interface de ligne de commande, exécutez cette commande :

zipinfo ../function-name.zip

Remarque : remplacez function-name par le véritable nom de fichier de votre package de déploiement.

Vous pouvez également exécuter unzip -l sur le fichier .zip pour en lister le contenu, le résultat ne sera toutefois pas aussi détaillé.

2.    Observez le contenu pour vérifier que le fichier source gestionnaire de fonction se trouve à la racine du fichier zip.

3.    Examinez le résultat pour vérifier que vos fichiers sont en lectures globale. Pour plus d’informations, y compris sur la manière de remédier aux problèmes liés aux autorisations, s’il y a lieu, consultez Stratégies d'autorisation sur les packages de déploiement Lambda.

Windows

Créer un package de déploiement

1.    Dans l’explorateur de fichiers, ouvrez votre dossier de projet.

2.    Sélectionnez l’ensemble des fichiers de projet et cliquez avec le bouton droit de la souris pour ouvrir le menu contextuel.

3.    Choisissez Envoyer vers, puis sélectionnez Dossier compressé (zippé).

4.    Entrez un nom pour le fichier .zip.

Chargez et vérifiez le package de déploiement

1.    Dans la console Lambda, choisissez votre fonction.

2.    Sous Code de fonction, pour Type d'entrée de code, sélectionnez Charger un fichier .zip.

3.    Sous Function package (Package de fonction), choisissez Upload (télécharger).

4.    Choisissez le fichier .zip que vous avez créé, puis choisissez Ouvrir.

5.    En haut de la console, choisissez Enregistrer.

Conseil : Vous pouvez aussi exécuter la commande update-function-code dans l’interface de ligne de commande (AWS CLI) pour télécharger votre fichier .zip.

6.    Une fois le téléchargement terminé, choisissez Test.

Conseil : vous pouvez également utiliser 7-Zip dans l’interface de ligne de commande AWS pour vérifier les autorisations de fichier de votre package de déploiement. Téléchargez-le depuis le site Web 7-Zip. Pour plus d’informations, consultez Permissions Policies on Lambda Deployment Packages.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site d'AWS Support Center

Date de publication : 29/06/2018

Date de mise à jour : 15/02/2019