Lors de l'écriture de fonctions Lambda en Python, vous souhaiterez peut-être utiliser une bibliothèque tierce dans la fonction Lambda. Cependant, Lambda ne vous permet pas d'installer des bibliothèques à l'aide de pip. Cette fois, je présenterai une méthode utile dans une telle situation.
Plus précisément, utilisez la fonction de téléchargement de fichiers fournie par Lambda. Cela signifie que vous pouvez utiliser la bibliothèque à partir de la fonction Lambda en téléchargeant une bibliothèque tierce lorsque vous téléchargez le fichier.
Cette fois, j'essaierai d'utiliser des requêtes, qui est la bibliothèque HTTP de Python.
Veuillez consulter l'article suivant pour la méthode de base de création de fonctions Lambda.
Commencez par créer un répertoire de travail. Appelons cela un espace de travail. Après avoir créé le répertoire, accédez-y.
$ mkdir workspace
$ cd workspace
Une fois à l'intérieur de l'espace de travail, utilisez pip pour installer la bibliothèque. Procédez comme suit:
$ pip install requests -t .
Vous pouvez spécifier l'emplacement d'installation de la bibliothèque en ajoutant l'option t. Cette fois, il est installé dans le répertoire courant (espace de travail).
Après avoir installé la bibliothèque, l'étape suivante consiste à écrire la fonction Lambda. Le nom de fichier doit être ** lambda_function.py ** et le nom de la fonction doit être ** lambda_handler **. Souvenez-vous des noms de fichier et de fonction pour une utilisation ultérieure.
lambda_function.py
import requests
def lambda_handler(event, context):
res = requests.get("http://www.yahoo.co.jp/")
return res.status_code
Le code ressemble à celui ci-dessus. Le contenu est aussi simple que OBTENIR la première page de Yahoo et renvoyer le code d'état. Si la page peut être acquise normalement, 200 sera renvoyé comme code d'état.
>>> from lambda_function import lambda_handler
>>> lambda_handler(None, None)
200
>>>
Utilisez la commande zip pour compresser tous les fichiers de l'espace de travail. Le nom du fichier à compresser doit être ** upload.zip **.
$ zip -r upload.zip *
Après la compression avec la commande zip, téléchargez le fichier compressé sur Lambda. Il y a un "Type d'entrée de code" dans l'élément "Code de fonction Lambda" dans l'écran de réglage des fonctions. La valeur par défaut est "Modifier le code en ligne", mais sélectionnez "Télécharger un fichier .ZIP" ici. Lorsque vous le sélectionnez, le bouton "Télécharger" apparaîtra, alors téléchargez le fichier que vous avez créé précédemment (upload.zip).
Après avoir téléchargé le fichier, définissez la fonction à utiliser dans ** Handler **. Les fonctions peuvent être spécifiées au format "nom de fichier.fonction nom". Le nom de fichier de la fonction Lambda créée précédemment était ** lambda_function **, et le nom de la fonction était ** lambda_handler **, spécifiez donc "lambda_function.lambda_handler".
Ceci termine les réglages. Sélectionnez le bouton "Suivant" et le bouton "Créer une fonction" pour créer la fonction.
Essayez de tester à partir de l'écran de test. Si le code d'état est renvoyé, il réussit. Je vous remercie pour votre travail acharné.
Recommended Posts