aws lambda错误:无法导入模块“function\u name”:没有名为“module.\u module”的模块

33qvvth1  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(380)

看完后请特别看截图。

我正在aws lambda上部署一个python脚本,它使用这个包 impyla 它依赖于包 bitarray .

from impala.dbapi import connect

我的python文件名为 authorize_ingress.py 有一个函数叫做 handle_authorize_ingress(event, context) 正确配置。请参见下面的屏幕截图:
我的函数文件:

lambda中指定的处理程序:

代码本身中的处理程序:

我的zip文件的所有内容都在根目录中(而不是嵌套在目录中):

包裹 bitarray 由自动安装 impyla :

每一次,我都会得到这样的回答:

到目前为止,我已经尝试:
包是用生成的 zip -r 选项。
这些文件位于zip的根目录中,而不是嵌套在目录中。
这个函数在局部工作得非常好。
我两个都试过了 virtualenv 只需在 packages/ 但是没有运气
你知道我做错了什么吗?我按照aws的lambda部署指南生成了部署包。任何帮助都将不胜感激,谢谢!

yzckvree

yzckvree1#

干得好。您可以通过这个gdrive链接下载这个lambda层。此层与python3.8兼容,因此请确保选择了正确的lambda运行时。
如果您想知道我是如何生成这个lambda层的,下面列出了我所做的工作:
无服务器框架
无服务器python需求插件
Docker
无服务器.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

要求.txt

impyla==0.16.2

那就做吧 sls package -p pkg . 名为 pythonRequirements.zip 马上就好 .serverless 目录。

相关问题