77 votes

Comment ajouter des bibliothèques python à une fonction lambda AWS pour Alexa?

J'ai suivi le tutoriel pour créer un Alexa application à l'aide de Python:

Python Alexa Tutoriel

J'ai pu réussir à suivre toutes les étapes et obtenir l'application de travail.Je veux à présent modifier le code python et l'utilisation de bibliothèques externes tels que l' import requests ou tout autres bibliothèques que j'ai installer à l'aide du pep. Comment puis-je configurer mon lambda fonction pour inclure toute pip paquets que j'installe en local sur ma machine?

29voto

Santhosh Gandhe Points 6427

Comme il est décrit dans l'Amazonie, la documentation officielle de lien ici, C'est aussi simple que la création d'un zip de tout le contenu du dossier après l'installation des paquets nécessaires dans votre dossier où vous avez votre python lambda code.

Comme Vineeth signalé ci-dessus, dans son commentaire, La première étape dans le déplacement de la ligne de l'éditeur de code dans un fichier zip télécharger approche est de changer votre lambda nom de fonction de gestionnaire en vertu de paramètres de configuration pour inclure le script python nom du fichier qui contient le lambda gestionnaire.

lambda_handler => {votre-python-script-nom de fichier}.lambda_handler.

CONFIGURE LAMBDA FUNCTION

D'autres solutions comme python-lambda et lambda-uploader aider à simplifier le processus de téléchargement et le plus important de TEST LOCAL. Ces permettra d'économiser beaucoup de temps dans le développement.

27voto

dorian Points 2600

La documentation officielle est assez bonne. En un mot, vous devez créer un fichier zip dans un répertoire contenant à la fois le code de votre fonction lambda et toutes les bibliothèques externes que vous utilisez au plus haut niveau.

Vous pouvez simuler qu'en désactivant votre virtualenv, la copie de tous vos bibliothèques dans le répertoire de travail (qui est toujours en sys.path si vous appelez un script sur la ligne de commande), et de vérifier si votre script fonctionne toujours.

8voto

d3ming Points 2348

Vous pouvez rechercher en utilisant des frameworks tels que zappa qui se chargera de l'empaquetage et déploiement de la fonction lambda pour vous.

Vous pouvez l'utiliser en conjonction avec flacon de demander à avoir un temps plus facile faire de Alexa compétences. Il y a même un tutoriel vidéo de ce (à partir de la zappa readme) ici

4voto

jay Points 2267

En écho @d3ming réponse, un cadre est une bonne façon d'aller à ce point. De la création du package de déploiement manuellement n'est pas impossible, mais vous aurez besoin d'importer vos paquets le code compilé, et si vous êtes à la compilation de ce code sur un non-système linux, la chance de courir dans les problèmes avec des différences entre votre système et le Lambda fonction de l'environnement déployé sont élevés.

Vous pouvez ensuite travailler autour de cela par la compilation de votre code sur une machine linux ou conteneur Docker.. mais entre toute cette complexité, vous pouvez obtenir beaucoup plus de l'adoption d'un cadre.

Sans serveur est bien adoptée et a un support personnalisé pour les paquets python. Il intègre même avec menu fixe pour compiler votre python dépendances et de construire le package de déploiement pour vous.

Si vous êtes à la recherche d'un tutoriel complet sur ce, j'ai écrit un pour Python Lambda fonctions ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X