我在 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 目录实际创建我的层以进行远程部署。
但这并没有奏效。