【发布时间】:2020-06-16 19:35:30
【问题描述】:
我有一个用 Python 3.7 实现的 AWS Lambda,并部署在一个包中,如下所示:
universe-UIFunctionCelestial-XXXX
|--universe-0-0-1-SNAPSHOT
| |--src
| | |--lambdas
| | | |--__init__.py
| | | |--celestial_persist_function.py
| | |--__init__.py
可通过 API Gateway 访问 Lambda。它的 GET 方法成功调用了 Lambda,但是 Lambda 返回以下错误:
2020 年 3 月 4 日星期三 09:49:35 UTC:转换前的端点响应正文:{“errorMessage”:“无法导入模块‘universe-0-0-1-SNAPSHOT/src/lambdas/celestial_persist_function’:没有模块命名为 'src'", "errorType": "Runtime.ImportModuleError"}
2020 年 3 月 4 日星期三 09:49:35 UTC:由于客户函数错误,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 UTC:方法已完成,状态为:502
我的印象是 Python Lambda 执行会将 lambda 作为模块导入,因此我在每个级别添加了 __init__.py 文件。这些可能有助于 lambda 导入以及 lambda 中的导入,例如:
from src.persistence.persistence_service import PersistenceService
无论如何,我已经尝试了许多不同的安排和文件结构。我可能做错了什么?
顺便说一句,所有代码都在本地执行,没有任何问题。
【问题讨论】:
标签: python-3.x amazon-web-services aws-lambda