Search code examples
pythonpython-3.xamazon-web-servicesaws-lambdaaws-lambda-layers

Import libraries in lambda layers


I wanted to import jsonschema library in my AWS Lambda in order to perform request validation. Instead of bundling the dependency with my app , I am looking to do this via Lambda Layers. I zipped all the dependencies under venv/lib/python3.6/site-packages/. I uploaded this as a lambda layer and added it to my aws lambda using publish-layer-version and aws lambda update-function-configuration commands respectively. The zip folder is name "lambda-dep.zip" and all the files are under it. However when I try to import jsonschema in my lambda_function , I see the error below -

from jsonschema import validate
{
  "errorMessage": "Unable to import module 'lambda_api': No module named 'jsonschema'",
  "errorType": "Runtime.ImportModuleError"
}

Am I missing any steps are is there a different mechanism to import anything within lambda layers?


Solution

  • You want to make sure your .zip follows this folder structure when unzipped

    python/lib/python3.6/site-packages/{LibrariesGoHere}.

    Upload that zip, make sure the layer is added to the Lambda function and you should be good to go.

    This is the structure that has worked for me.