我有一个用Python 3.7实现的AWS Lambda,并部署在如下所示的程序包中:
universe-UIFunctionCelestial-XXXX
|--universe-0-0-1-SNAPSHOT
| |--src
| | |--lambdas
| | | |--__init__.py
| | | |--celestial_persist_function.py
| | |--__init__.py
可以通过API网关访问Lambda。其GET方法成功调用了Lambda,但是Lambda返回以下错误:
Mar Mar 04 09:49:35 UTC 2020:转换之前的端点响应主体:{“ errorMessage”:“无法导入模块'universe-0-0-1-SNAPSHOT / src / lambdas / celestial_persist_function':无模块名为“ src””,“ errorType”:“ Runtime.ImportModuleError”}
3月04日星期三09:49:35 UTC 2020:由于客户功能错误,Lambda执行失败,状态为200:无法导入模块'universe-0-0-1-SNAPSHOT / src / lambdas / celestial_persist_function':无模块名为“ src”。 Lambda请求ID:381990d0-f193-4e49-b0fa-2c6d736552bd
2020年3月4日星期三09:49:35:方法已完成,状态为:502
我的印象是Python Lambda执行将lambda作为模块导入,因此我在每个级别添加了__init__.py
文件。这些可能会帮助lambda导入以及lambda内的导入,例如:
from src.persistence.persistence_service import PersistenceService
无论如何,我已经尝试了许多不同的安排和文件结构。我可能做错了什么?
顺便说一句,所有代码都在本地执行,没有任何问题。
答案 0 :(得分:0)
我对Python没有经验,但是看起来您应该将代码上传到另一个根文件夹。请尝试将.... / src /移至/
P.S。而且我建议使用serverless.com框架来构建您的lambda-开始更容易
答案 1 :(得分:0)
这个问题已经有一段时间了,但我还是会回答 - 也许它会帮助别人。
我遇到了同样的问题 - Lambda 的问题是它在 src 文件夹内运行,并且无法理解您的导入。你需要的是:
from [folder inside src] import [filename]
因此您的导入应如下所示:
from persistence import persistence_service
在此之后,您将能够调用PersistenceService。