Comment puis-je créer un package de déploiement Lambda pour Node.js ?

Lecture de 5 minute(s)
0

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 ?

Brève description

L'erreur Impossible de trouver le module se produit généralement pour l'une des trois raisons suivantes :

  • Le package de déploiement de la fonction Lambda n'a pas la structure de dossiers correcte pour permettre au service Lambda de charger les modules et bibliothèques requis.
  • Le package de déploiement ne dispose pas des autorisations de fichier correctes.
  • Le package de déploiement ne contient pas le module importé.

Remarque : Lambda exige des autorisations en lecture globale.

Résolution

Pour créer un package de déploiement avec un code de fonction dans le dossier racine du fichier .zip, puis appliquer les autorisations de lecture et d'exécution pour tous les fichiers, procédez comme suit.

Remarque : si vous recevez des message d'erreurs 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.

Sous 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. Si vous installez les modules avec npm, c'est une bonne pratique de construire le fichier .zip dans un environnement Linux pour s'assurer que les bonnes dépendances de plate-forme sont incluses.

1.    Dans l'AWS CLI, modifiez les répertoires de votre dossier de projet. Par exemple :

cd /project-folder-name

Important : Assurez-vous de remplacer le nom-dossier de projet par le nom de votre dossier de projet réel.

2.    Installez vos dépendances localement dans votre dossier de projet de fonction en exécutant la commande suivante pour chaque module requis pour votre fonction :

npm install package-name

Important : Assurez-vous de remplacer paquetage-name par le nom du paquet réel. La taille des fonctions est également limitée à 250 Mo pour les fichiers décompressés. N'incluez que les bibliothèques dont vous avez besoin pour que votre fonction fonctionne.

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

Remarque : Lambda inclut le SDK AWS pour les bibliothèques JavaScript dans la configuration du conteneur de base. Pour 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.

Créer un package de déploiement

Dans l'interface de ligne de commande AWS, exécutez la commande suivante :

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 AWS, exécutez la commande suivante :

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 lister son contenu, mais le résultat ne sera 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, consultez la rubrique Comment résoudre les erreurs « permission denied » (autorisation refusée) ou « unable to import module » (impossible d'importer le module) dans Lambda lors du chargement d'un package de déploiement ?

Pour Windows

Créer un package de déploiement

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

2.    Sélectionnez tous les fichiers du projet, puis cliquez sur 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 également lancer le code de fonction de mise à jour à partir du CLI de l'AWS 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.


Informations connexes

Package de déploiement AWS Lambda dans Node.js

Création d'un package de déploiement

Création de fonctions Lambda avec Node.js

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans