J'ai comparé Node.js et Python lors de la création d'une miniature à l'aide d'AWS Lambda

J'ai recherché quel framework, Node.js ou Python, est le meilleur pour le processus de création de vignettes à l'aide d'AWS Lambda.

TL;DR

Scénario expérimental

  1. Téléchargez des photos depuis S3
  2. Corrigez la rotation en regardant la valeur d'orientation d'Exif.
  3. Obtenez les valeurs de largeur et de hauteur après correction de la rotation
  4. Redimensionner à 50% et télécharger sur S3

Image d'entrée

Image de sortie

Spécifications de la fonction Lambda

--Mémoire 256M

Résultat expérimental

Résultats de l'exécution de 5 fois chacun sur la console AWS

Node.js Python
temps de traitement(ms) 10500 - 12375 3214 - 3727

En conséquence, Python a un temps de traitement extrêmement court. La taille maximale de la mémoire utilisée était également plus petite en Python.

Donc, si vous souhaitez générer des miniatures avec AWS Lambda, il semble préférable d'utiliser Python plutôt que d'utiliser Node.js.

Créer des miniatures en Python

ImageMagick (GraphicMagicks) est disponible pour Node.js depuis le début, et il existe de nombreux exemples de programmes et d'articles, mais Python n'a pas beaucoup d'informations. Lorsque j'ai créé Pillow, une bibliothèque de traitement d'image en Python, sur EC2 en référence à ce qui suit, il était étonnamment facile de créer des miniatures à l'aide de Lambda.

Le code utilisé dans cette expérience se trouve ici. Le Pillow prédéfini est également inclus dans le référentiel, ce qui peut être utile si vous souhaitez créer rapidement une miniature avec AWS Lambda x Python.

Recommended Posts

J'ai comparé Node.js et Python lors de la création d'une miniature à l'aide d'AWS Lambda
[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.
[Python] Scraping dans AWS Lambda
J'ai comparé Java et Python!
Récapitulatif si vous utilisez AWS Lambda (Python)
Ecrire une fonction AWS Lambda en Python
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
J'ai comparé argparse standard python3 et python-fire
Surveillance simple du serveur avec AWS Lambda (Python) et notification des résultats avec Slack
J'ai comparé l'utilisation de Dash et Streamlit dans l'environnement Docker en utilisant les données de la ligue B
J'ai essayé le web scraping en utilisant python et sélénium
Différences entre queryStringParameters et multiValueQueryStringParameters dans AWS Lambda
J'ai essayé la détection d'objets en utilisant Python et OpenCV
Création d'un processus de numérotation à l'aide de python dans le processus de numérotation locale DynamoDB
Python: j'ai pu récurer en lambda
J'ai écrit une classe en Python3 et Java
J'ai comparé "type de dictionnaire python" et "fonction excel"
Version Amazon API Gateway et AWS Lambda Python
Essayez d'utiliser l'API ChatWork et l'API Qiita en Python
J'ai vérifié la vitesse de référence lors de l'utilisation de la liste python, du dictionnaire et du type de jeu.
Développer, exécuter et déployer AWS Lambda à distance à l'aide de lambda-uploader
Pages HTML dynamiques créées avec AWS Lambda et Python
Bases de l'écran d'entrée / sortie en utilisant tkinter en python3
J'ai essayé d'utiliser google test et CMake en C
Essayez de créer un fichier compressé en utilisant Python et zlib
[AWS IoT] Enregistrer des éléments dans AWS IoT à l'aide du SDK AWS IoT Python
J'ai essayé d'utiliser TradeWave (commerce du système BitCoin en Python)
J'ai mis du sélénium et du chrome sans tête dans AWS lambda. (Notes sous environnement Win10, etc.)
Vérifiez types_map lors de l'utilisation de mimetypes avec AWS Lambda (Python)
J'ai comparé la vitesse de la référence du python dans la liste et la référence de l'inclusion du dictionnaire faite à partir de la liste dans.
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Je veux AWS Lambda avec Python sur Mac!
Lire et écrire des balises NFC avec python en utilisant PaSoRi
[Python] Retry processing (Exponential Backoff) mémo dans AWS Lambda
AWS Lambda prend désormais en charge Python, je l'ai donc essayé
Créez des tweets ordinaires comme une flotte avec AWS Lambda et Python
Python: peut être répété en lambda
J'ai comparé Python more-itertools 2.5 → 2.6
J'ai regroupé le yen dollar en utilisant la méthode k-medoids en python et j'ai trouvé le taux de réponse correct.
J'ai essayé de [gratter] des images de mode et des phrases de texte avec Python.
Essayez de le faire avec GUI, PyQt en Python
J'ai eu une erreur dans vim ou zsh dans la série Python 3.7
J'ai créé un lecteur de flux rapide en utilisant feedparser en Python
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (4)
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
Collectez les tweets en utilisant tweepy en Python et enregistrez-les dans MongoDB
J'ai essayé de programmer le test du chi carré en Python et Java.
J'ai créé une classe en Python et essayé de taper du canard
Prédire le sexe à partir du nom à l'aide de l'API Gender et de Pykakasi en Python
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
J'ai fait un chronomètre en utilisant tkinter avec python
Créez rapidement une API avec Python, lambda et API Gateway à l'aide d'AWS SAM
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
Surveillance du site et notification d'alerte avec AWS Lambda + Python + Slack
J'ai écrit python en japonais
Générer une vignette arrondie en Python
Web scraping à l'aide d'AWS lambda