AWS Lambda prend désormais en charge Python, je l'ai donc essayé

introduction

AWS Lambda prend désormais en charge Python 2.7 à partir du 8 octobre 2015, après Node.js et Java. Cela permet à Lambda d'utiliser du code Python précédemment écrit à l'aide de boto. Je l'ai essayé immédiatement, je vais donc résumer les points.

Name Un nom géré par Lambda. Ce n'est pas le nom du module Python qui s'exécute sur Lambda.

Code En Python, un fichier est un module. Le nom du fichier est * nom du module.py *. Si vous avez un module, modifiez-le en ligne, et si vous avez plusieurs modules, téléchargez-les ensemble dans un zip. Lors du téléchargement, téléchargez à partir du navigateur dans la console de gestion ou spécifiez le fichier téléchargé sur S3.

Créer un zip

Si vous avez plusieurs modules, fermez-les ensemble. Il y a deux points importants.

Point de création du zip

--Compressez pour que le module soit en haut du zip. --Bon exemple: les fichiers sont extraits dans le répertoire actuel lorsqu'ils sont décompressés sans options

commande de création zip

Cd dans le répertoire de niveau supérieur contenant votre code Python et zip -r filename.zip *. Voici un exemple lorsque le code est sous le répertoire * myModuleDir *. Il n'y a pas de règles pour les noms de fichiers zip.

bash


$ cd myModuleDir
$ ls
myCode1.py
myCode2.py
...
$ zip -r ~/myLambdaFunction.zip *

Pour inclure un module tiers dans un zip

Utilisez pip install <modulename> -t <myModuleDir> pour l'installer dans le répertoire de niveau supérieur contenant le code Python. Si vous spécifiez la destination de l'installation avec l'option -t dans pip install, une erreur peut se produire. Selon mes recherches, il semble que cela se produise lorsqu'il est installé dans lib64 et qu'il est également soulevé dans le problème, mais à partir d'octobre 2015, si vous yum installez python27-pip sur Amazon Linux, il y a ce problème. Lxml est celui que j'ai essayé. Dans ce cas, cela fonctionnait en copiant simplement le module installé sans l'option -t. J'ai eu une erreur lorsque j'ai copié le module Python2.6, donc pip installez avec Python2.7.

$ cp -R /usr/local/lib64/python2.7/site-packages/lxml <myModuleDir>

Blueprint Il s'agit d'un modèle qui peut être facilement démarré pour chaque service AWS ou langage de programmation utilisé à partir de Lambda. Par exemple, vous pouvez facilement démarrer avec Lambda en Python en sélectionnant * hello-world-python *.

Handler Si vous sélectionnez Blueprint, le gestionnaire écrit dans le code est sélectionné. Si vous souhaitez réutiliser un module Python existant, remplacez ʻif name == '__ main __': `par'def lambda_handler (événement, contexte): 'et spécifiez ce gestionnaire dans Lambda. Ou si vous ne souhaitez pas modifier un module existant, importez le module existant et créez un module wrapper qui décrit le gestionnaire.

Role Attribuez un rôle à l'instance Lambda que vous souhaitez exécuter. Commencez avec un modèle que vous pouvez créer et sélectionner dans AWS Management Console et modifier les autorisations si nécessaire. Si le rôle est correctement défini, vous n'avez pas besoin de définir les informations d'identification de sécurité (clé d'accès).

Memory Vous pouvez sélectionner de 128 Mo à 1536 Mo par étapes. Une fois exécuté, la consommation maximale de mémoire sera affichée sur la console.

Timeout Il peut être réglé en quelques secondes. Avec cette mise à jour, vous pouvez configurer jusqu'à 5 minutes. Si le délai d'expiration est dépassé, le programme sera interrompu de force.

Log Il est également affiché sur la console, mais il est automatiquement enregistré dans le journal CloudWatch.

Appendix A. References

Recommended Posts

AWS Lambda prend désormais en charge Python, je l'ai donc essayé
Je voulais utiliser la feuille de calcul Google avec AWS lambda, alors je l'ai essayé [Partie 2]
Livre Wrangle x Python Je l'ai essayé [2]
Livre Wrangle x Python Je l'ai essayé [1]
J'ai essayé de connecter AWS Lambda à d'autres services
J'ai essayé Python> autopep8
J'ai essayé AWS CDK!
J'ai essayé Python> décorateur
J'ai essayé AWS Iot
J'ai essayé d'utiliser Twitter Scraper avec AWS Lambda et cela n'a pas fonctionné.
J'ai essayé d'exécuter TensorFlow dans l'environnement AWS Lambda: Préparation
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Je veux AWS Lambda avec Python sur Mac!
Python: peut être répété en lambda
AWS CLI v2 est devenu GA (disponibilité générale), j'ai donc essayé de l'utiliser immédiatement.
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
[Python] Scraping dans AWS Lambda
J'ai essayé l'extension C de Python
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
Notez qu'il prend en charge Python 3
J'ai essayé d'utiliser AWS Chalice
Récapitulatif si vous utilisez AWS Lambda (Python)
J'ai essayé d'exécuter le référentiel de packages Python (entrepôt) qui prend en charge PyPI
J'ai essayé de toucher Python (installation)
J'ai essayé webScraping avec python.
Ecrire une fonction AWS Lambda en Python
Je suis resté coincé alors je l'ai examiné
[Couches Python / AWS Lambda] Je souhaite réutiliser uniquement le module dans AWS Lambda Layers
J'ai essayé d'utiliser Thonny (Python / IDE)
J'ai essayé Grumpy (allez exécuter Python).
J'ai comparé Node.js et Python lors de la création d'une miniature à l'aide d'AWS Lambda
[Super basiques de Python] J'ai appris les bases des bases, donc je l'ai résumé brièvement.
Notifier HipChat avec AWS Lambda (Python)
J'ai essayé ChatOps avec Slack x API Gateway x Lambda (Python) x RDS
J'ai essayé d'exécuter prolog avec python 3.8.2.
[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.
J'ai essayé la notification de ligne en Python
J'ai essayé la communication SMTP avec Python
J'ai essayé de supprimer régulièrement les mauvais tweets avec l'API AWS Lambda + Twitter
J'ai essayé d'informer le serveur Zabbix d'une erreur d'exécution de la fonction AWS Lambda
Je veux le faire avec Python lambda Django, mais je vais m'arrêter
Codage Python: je ne suis pas sûr de Nintoka alors j'ai cherché
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
[AWS] [GCP] J'ai essayé de rendre les services cloud faciles à utiliser avec Python
[Zaif] J'ai essayé de faciliter le commerce de devises virtuelles avec Python
[Lambda] J'ai essayé d'incorporer un module externe de python via S3
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python
[AWS] Utilisation de fichiers ini avec Lambda [Python]
J'ai essayé d'implémenter la permutation en Python
J'ai installé DSX Desktop et l'ai essayé
J'ai essayé d'implémenter PLSA dans Python 2