Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Runtime.ImportModuleError: Unable to import module (lambda)

When I check the cloud watch logs of my Lambda function, I see theses errors:

[ERROR] Runtime.ImportModuleError: Unable to import module 'trigger_bitbucket_pipeline_from_s3': No module named 'requests'

File structure:

/bin
    --trigger_bitbucket_pipeline_from_s3.zip
/src
   --trigger_bitbucket_pipeline_from_s3.py
   --/requests (lib folder)
   

lambda.tf

Lambda.tf:

data "archive_file" "lambda_zip" {
  type             = "zip"
  source_file      = "${path.module}/src/trigger_bitbucket_pipeline_from_s3.py"
  output_file_mode = "0666"
  output_path      = "${path.module}/bin/trigger_bitbucket_pipeline_from_s3.zip"
}

resource "aws_lambda_function" "processing_lambda" {
  filename         = data.archive_file.lambda_zip.output_path
  function_name    = "triggering_pipleline_lambda"
  handler          = "trigger_bitbucket_pipeline_from_s3.lambda_handler"
  source_code_hash = data.archive_file.lambda_zip.output_base64sha256
  role             = aws_iam_role.processing_lambda_role.arn

  runtime = "python3.9"

}

My lambda function in src/trigger_bitbucket_pipeline_from_s3.py is pretty straightforward for now:

import logging
import requests

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):

    logger.info(f'## EVENT: {event}')


    return {
        'statusCode': 200,
    }

What am I doing wrong? I have already double checked file names.

like image 373
x89 Avatar asked Dec 12 '25 04:12

x89


1 Answers

That is because there is no module named 'requests' in lambda, remembrer lambda is serverless so you need to configure all your dependencies before you run it.

One way to solve this is to install that dependency locally in your project:

pip install requests -t ./

Then create again the .zip file (with the dependency in it) and upload to your lambda function.

And other way to solve it is to use a custom layer in AWS lambda that contains the relevant 'requests' site-packages you require. Example:

https://dev.to/razcodes/how-to-create-a-lambda-layer-in-aws-106m

like image 116
Roberto Rivera Avatar answered Dec 13 '25 18:12

Roberto Rivera