AWS Lambda Error: Unable to import module 'function_name': No module named 'module._module'

蓝咒 提交于 2021-01-27 19:24:07

问题


Please see the screenshots in particular after reading.

I am deploying a python script on AWS Lambda which uses the package impyla which has a dependency on the package bitarray.

from impala.dbapi import connect

My python file is called authorize_ingress.py which has a function called handle_authorize_ingress(event, context) which are properly configured. See the screenshots below:

My function's file:

function

The handler in lambda specified:

handler

The handler in code itself:

handler

and my zip file has everything in the root (and not nested within a directory):

file

The package bitarray is installed automatically by impyla:

bitarray

Every single time, I am met with this response:

response

As of now, I have tried to:

  • The package was generated with zip -r option.
  • The files are in the root of the zip and not nested within a directory.
  • The function works perfectly fine locally.
  • I have tried both virtualenv and simply installing the dependencies in a packages/ path but no luck

Any ideas what I might be doing wrong? I generated my deployment package following AWS' Lambda Deployment Guide. Any help would be appreciated, thank you!


回答1:


Here you go. You can download this lambda layer through this gdrive link. This layer is compatible with Python 3.8, so make sure you select the correct lambda runtime.

If you are curious to know how I generated this lambda layer, here is a list of basically what I did:

  • Serverless Framework
  • serverless-python-requirements plugin
  • docker
  • serverless.yml
service: serverless-example

provider:
  name: aws
  runtime: python3.8
  region: us-east-1
  profile: dummy

functions:
  dummy:
    handler: dummy.handler

plugins:
  - serverless-python-requirements

custom:
  pythonRequirements:
    dockerizePip: non-linux
    layer: true
  • requirements.txt
impyla==0.16.2

Then simply do sls package -p pkg. The layer named pythonRequirements.zip will be ready in a minute under .serverless directory.



来源:https://stackoverflow.com/questions/62945454/aws-lambda-error-unable-to-import-module-function-name-no-module-named-modu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!