使用无服务器框架为 AWS Lambda 构建和使用本地包
Build and use local package for AWS Lambda using serverless framework
我正在尝试打包本地 python 程序包¹ 并在通过无服务器框架部署的 AWS lambda 中使用它。我已经使用 serverless-python-requirements 插件将 pip 依赖项添加到已部署的包中。
我该如何继续?
我要创建一个包并压缩它吗?或者生成一个whl文件并使用pip?然后,如何部署呢?
¹:我不能只将它添加到“普通代码库”,因为我想与其他积木共享它(例如 Glue 作业)
解决方法如下:
1.
使用
构建一个对应包的.whl
文件
python setup.py bdist_wheel
在父目录中。
2.
将此 .whl
文件的相对路径添加到使用的 pip 要求文件(例如 requirements.txt
):
req0==1.0.9
req1==5.5.0
../<relative path to local package>/dist/<package name>-<version>-<details>.whl # generated .whl file's name
3.
serverless-python-requirements
将在执行 sls deploy
时自动将此依赖项打包到已部署的存档中。多酷啊,嗯!
我正在尝试打包本地 python 程序包¹ 并在通过无服务器框架部署的 AWS lambda 中使用它。我已经使用 serverless-python-requirements 插件将 pip 依赖项添加到已部署的包中。
我该如何继续?
我要创建一个包并压缩它吗?或者生成一个whl文件并使用pip?然后,如何部署呢?
¹:我不能只将它添加到“普通代码库”,因为我想与其他积木共享它(例如 Glue 作业)
解决方法如下:
1.
使用
构建一个对应包的.whl
文件
python setup.py bdist_wheel
在父目录中。
2.
将此 .whl
文件的相对路径添加到使用的 pip 要求文件(例如 requirements.txt
):
req0==1.0.9
req1==5.5.0
../<relative path to local package>/dist/<package name>-<version>-<details>.whl # generated .whl file's name
3.
serverless-python-requirements
将在执行 sls deploy
时自动将此依赖项打包到已部署的存档中。多酷啊,嗯!