我可以为 Cloud9 的 Lambda 函数设置 PYTHONPATH 吗?



我在 Cloud9 中从 AWS 资源菜单中创建了 2 个 Lambda 函数。

我想为这些功能提供通用模块。

我为常用模块制作了新文件夹,并将路径~/environment/python/lib添加到 PYTHONPATH 的首选项 -> Python 支持。

我用Lambda(local)Run主要功能。

但我得到了Unable to import module 'main/lambda_function': No module named 'common'.

我可以在 Cloud9 中为 Lambda Function 设置 PYTHONPATH 吗?

或者是否有更好的做法为多个 Lambda 函数使用通用模块?

我的文件夹树:

root
|-python
|-lib     <- for uploading to Lambda Layers
common.py
|-app
|-main
|-lambda_function.py
|-main2
|-lambda_function.py

我lambda_function.py:

import common

在执行其他任何操作之前,只需在python文件中输出PYTHONPATH

import os
print(os.environ['PYTHONPATH'])
import ...
def lambda_handler(event,context):
...

您将看到作为函数日志的一部分,它将环境变量输出为/var/runtime。即使您通过 Cloud9 设置设置了该路径,您也会像我一样发现这些设置并不成立。

我希望在~/environment/layers/layername下设置我所有的层,所以我将拥有例如 scikit-learn 的所有库和依赖项:~/environment/layers/scikit-learn/python/...我将使用相同的 scikit-learn 目录实际创建我的层以进行远程部署。

但这并没有奏效。

最新更新