0 votes
1 view
in AWS by (19.2k points)

I am creating an AWS Lambda python deployment package. I am using one external dependency requests. I installed the external dependency using the AWS documentation http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html. Below is my python code.

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

Created the Zip the content of the project-dir directory and uploaded to the lambda(Zip the directory content, not the directory). When I am executing the function I am getting the below-mentioned error.

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

Kindly help me to debug the error.

1 Answer

0 votes
by (44.6k points)

Whenever you create a Lambda function, you have mentioned the function handler, so that the handler executes when the function is triggered. You will have to name the Lambda function handler like this:

PythonFileName.MethodName

For example, if your python files name is lambda.py and your lambda method’s name is lambda_handler, you will have to name it like this:

lambda.lambda_handler

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...