【发布时间】:2021-10-14 18:12:19
【问题描述】:
我有一个结构如下的项目:
.
├── README.md
└── src/
├── some_package_1/
| ├── setup.py
| └── some_module_1/
| ├── __init__.py
| ├── some_module_1.py
├── some_package_2/
| ├── setup.py
| └── some_module_2/
| ├── __init__.py
| ├── some_module_2.py
├── some_lambda/
| ├── lambda_function.py
| └── cfn-templates
| ├── my_template.yml
我的 lambda_function.py 看起来像这样:
from src.some_package_1.some_module_1 import some_module_1
from src.some_package_2.some_module_2 import some_module_2
def lambda_handler(event, context):
# Ofc logic here is simplified
some_module_1()
some_module_2()
我的问题是:如何将位于父目录中的东西导入 lambda 函数?
我尝试了什么:按照 this 教程为我的依赖项制作 zip 存档,但是这个 lambda func 将使用 CloudFormation 模板部署,我不知道如何实现将我的包安装在一个目录中并压缩的步骤它,在 CloudFormation 模板中。
是否有任何标准可以使用 lambda 函数处理此类导入?
【问题讨论】:
-
使用 SAM 怎么样?
-
@Marcin SAM 示例 github github.com/amazon-archives/serverless-app-examples 上的所有示例似乎都没有涵盖我的用例。我的存储库中有私有包,想知道如何在我的模板中解决它们。你能给我更多关于从哪里开始的信息吗?我应该补充一点,我通常是使用 AWS 的新手。我应该在 requirements.txt 中指定
some_module_1,还是sam build应该自己识别导入 -
进展如何?包有用吗?
-
@Marcin 部分是的,我必须编写 shell 脚本来将我的其他模块安装到
some_lambda/目录,然后打包并部署。谢谢:) -
很高兴它成功了。如果是这样,我们将不胜感激。
标签: python python-3.x amazon-web-services aws-lambda amazon-cloudformation