AWS Lambda错误:无法导入模块“函数\u名称”:没有名为“模块.\u模块”的模块

2024-05-16 12:14:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

from impala.dbapi import connect

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

我的函数的文件:

function

lambda中的处理程序指定了:

handler

代码本身中的处理程序:

handler

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

file

程序包bitarrayimpyla自动安装:

bitarray

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

response

截至目前,我已尝试:

  • 包是使用zip -r选项生成的
  • 这些文件位于zip的根目录中,而不是嵌套在目录中
  • 该函数在局部工作得非常好
  • 我尝试了virtualenv和简单地在packages/路径中安装依赖项,但没有成功

你知道我做错了什么吗?我在AWS' Lambda Deployment Guide之后生成了部署包。任何帮助都将不胜感激,谢谢


Tags: 文件lambda函数目录脚本aws处理程序屏幕
1条回答
网友
1楼 · 发布于 2024-05-16 12:14:38

给你。您可以通过这个gdrivelink下载这个lambda层。该层与Python 3.8兼容,因此请确保选择正确的lambda运行时

如果您想知道我是如何生成这个lambda层的,下面列出了我所做的工作:

  • 无服务器框架
  • 无服务器python需求插件
  • 码头工人
  • 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

然后简单地做sls package -p pkg。名为pythonRequirements.zip的层将在一分钟后在.serverless目录下准备就绪

相关问题 更多 >