Je suis assez nouveau sur AWS et j'ai quelques problèmes. Voici mon code:
from __future__ import print_function
from urllib2 import Request, urlopen, URLError
import requests
import boto3
import json
def lambda_handler(event, context):
url = "https://globalcurrencies.xignite.com/xGlobalCurrencies.json/GetHistoricalRatesRange?Symbol=BTCUSD&PriceType=Mid&StartDate=01/01/2017&EndDate=10/27/2017&PeriodType=Daily&FixingTime=22:00&_token=some_token_xyz"
response = requests.get(url).json()
# print json.dumps(response, indent=4) # gives a syntax error
return response
Le nom du fichier est lambda_function.py; J'ai vérifié des problèmes similaires sur stackoverflow et certains ont mentionné que je devais changer le nom du fichier. Mais ça n'a pas aidé. Voici comment la méthode python a été nommée:
Voici l'erreur que je reçois: START RequestId: cf24e9be-bbef-11e7-97b4-d9b586307f3e Version: $LATEST
Unable to import module 'lambda_function': No module named requests
Et quand j'essaie de l'imprimer, cela me donne une erreur de syntaxe. Désolé pour le formatage. Aucune suggestion?
request n'est pas une bibliothèque standard dans AWS lambda.
Donc, deux façons de résoudre ce problème:
1- Importez-le de la pile de bibliothèques Botocore en tant que:
from botocore.vendored import requests
Ici il y a une liste de toutes les bibliothèques disponibles à importer dans lambda
2- Créez un package de déploiement avec virtualenv.
En effet, il manque la bibliothèque request lors de son exécution dans le fichier lambda -, et il est probable qu’elle soit installée globalement sur votre ordinateur local. Si vous exécutez: pip install requests -t .
dans le même répertoire que votre code source, il installera le paquet de requêtes dans ce répertoire, puis vous pourrez le télécharger sur lambda avec votre fonction_lambda.py. Vous devrez peut-être faire la même chose pour boto3 et json: pip install boto3 -t .
pip install json -t .
Le module 'Requêtes' n'est pas dans votre fichier 'Zip' que vous essayez d'installer. vous devez mettre tous les modules dans le fichier Zip avec "pip install nom_du_module (comme les requêtes) -t".