AWS Lambda module d'importation d'erreur en python

Je suis entrain de créer un AWS Lambda python package de déploiement. J'utilise une dépendance demandes . J'ai installé la dépendance externe à l'aide de l'AWS documentation http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html. Ci-dessous mon code python.

import requests

print('Loading function')

s3 = boto3.client('s3')


def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))

    # Get the object from the event and show its content type
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')
    try:
        response = s3.get_object(Bucket=bucket, Key=key)
        s3.download_file(bucket,key, '/tmp/data.txt')
        lines = [line.rstrip('\n') for line in open('/tmp/data.txt')]
        for line in lines:
            col=line.split(',')
            print(col[5],col[6])
        print("CONTENT TYPE: " + response['ContentType'])
        return response['ContentType']
    except Exception as e:
        print(e)
        print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
        raise e

Créé le Zip sur le contenu du projet-dir annuaire et téléchargées sur le lambda(Zip le contenu du répertoire, et non pas le répertoire). Quand je suis d'exécuter la fonction, je suis mentionnés ci-dessous d'erreur.

START RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058 Version: $LATEST
**Unable to import module 'lambda_function': No module named lambda_function**

END RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058
REPORT RequestId: 9e64e2c7-d0c3-11e5-b34e-75c7fb49d058  Duration: 19.63 ms  Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 9 MB

De bien vouloir m'aider à chercher l'erreur.

  • Est-il ton code complet? Par l'erreur, il semble que quelque part quelque chose aurait envie de import lambda_function qui n'est pas trouvé. Vous désirez peut-être from future import lambda_function? Ou tout simplement pip install lambda_function sur la ligne de cmd.
  • Suis en cours d'exécution de ce python codein plateforme AWS . Je ne peux pas utiliser le pip. partout dans mon code am à l'aide de lambda_function. SI j'ai copier coller le même code dans la console AWS il fonctionnera
  • Voir le dernier commentaire sur ce thread — peut-être s'applique à vous?
  • J'ai essayé aussi. En fait suis la compression de contenu et non pas le répertoire!!
  • Ma conjecture est que "gestionnaire" option dans votre fonction est incorrect. Vérifiez que votre nom de fichier appelé "lambda_function.py" et méthode du gestionnaire est "lambda_handler"
  • J'ai passé des heures, enfin, est venu de savoir que vous avez pour compresser le contenu de votre répertoire ( y compris lambda_function.py ) et non pas le répertoire.
  • Mon code est juste en lambda comme code, non pas comme un fichier.