如何在 AWS Lambda 中使用 Python 自定义包
Posted
技术标签:
【中文标题】如何在 AWS Lambda 中使用 Python 自定义包【英文标题】:How to work with Python custom packages in AWS Lambda 【发布时间】:2021-01-17 12:41:43 【问题描述】:我的 app.py 函数使用 pip 库(如 SQLAlchemy 等)...我将其部署到 AWS Lambda,因此我将 app.py 和所有其他依赖项打包到一个 zip 中。
-
有没有更好的方法来解决这个问题? (如果 pip 库过时了怎么办)
我有一个要在许多程序中使用的自定义代码。如何创建自己的模块并将其与 pip 库一起打包?
【问题讨论】:
这应该会有所帮助:towardsdatascience.com/… 【参考方案1】:是的,我将为您的每个问题提供一些替代方案:
您可以使用 *framework (chalice/serverless) 自动为您处理打包。每次部署都会获取最新版本(根据您的 requirements.txt
)然后为您打包。我建议你坚持使用框架。
Lambda Layer 正是您所需要的 - 多个 lambda 将能够运行您的模块而无需开销(简单来说)。有很多参考资料解释了如何创建一个层以及关于 python 打包(你是必须评估是否需要将其上传到 pypi 的人)
在这两种情况下,serverless
都会对您有很大帮助!
【讨论】:
【参考方案2】:关于 1 - AWS SAM 将计算出您的 requirements.txt
并将所需的内容与您的代码捆绑在一起。这适用于小型项目,但对于较大的项目,我建议采用与库代码相同的方式 - 将所有部门放在单独的层中。可以用pip install -U --target dirname
安装,然后打包成一个层。
【讨论】:
以上是关于如何在 AWS Lambda 中使用 Python 自定义包的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 检索 AWS Lambda 公共 IP 地址?
我如何使用 aws lambda 将文件写入 s3 (python)?
在单个AWS Lambda中使用两个python函数boto3