AWS Lambda 错误:无法导入模块“function_name”:没有名为“module._module”的模块

2024-05-02

阅读后请特别查看屏幕截图。

我正在 AWS Lambda 上部署一个使用该包的 python 脚本impyla它依赖于包bitarray.

from impala.dbapi import connect

我的Python文件名为authorize_ingress.py其中有一个函数称为handle_authorize_ingress(event, context)已正确配置。请参阅下面的屏幕截图:

我的函数的文件:

lambda 中的处理程序指定:

代码本身的处理程序:

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

套餐bitarray自动安装impyla:

每次我都会得到这样的回应:

response

到目前为止,我已经尝试过:

  • 该包是用生成的zip -r option.
  • 这些文件位于 zip 的根目录中,而不是嵌套在目录中。
  • 该功能在本地运行得非常好。
  • 我都尝试过virtualenv并简单地将依赖项安装在packages/路径但没有运气

有什么想法我可能做错了什么吗?我生成了我的部署包如下AWS 的 Lambda 部署指南 https://docs.aws.amazon.com/lambda/latest/dg/python-package.html。任何帮助将不胜感激,谢谢!


干得好。你可以通过这个gdrive下载这个lambda层link https://drive.google.com/file/d/17KU9-wWoVl5Bm84znpPDZD20yifgYvOS/view?usp=sharing。该层与 Python 3.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目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Lambda 错误:无法导入模块“function_name”:没有名为“module._module”的模块 的相关文章

随机推荐