打包 AWS lambda 的用户 python 依赖项



问题

我有在项目之间共享的本地 Python 文件。它们的目录设置在 PYTHONPATH 中。

将 Python lambda 包部署到 AWS 时,我喜欢使用一个命令将所有这些文件(除了相关的 AWS 开发工具包包(复制到打包目录中,然后压缩它们。

lib
└── py
├── aws
│   ├── dynamo          <--- In PYTHONPATH
│   └── ec2             <--- In PYTHONPATH
├── common              <--- In PYTHONPATH
│   └── crypt.py    
│   └── http.py    
│   └── log.py    
└── elasticsearch       <--- In PYTHONPATH

什么是好方法?

  • 在 AWS Lambda 上进行开发的最佳实践

    Lambda 函数要求您打包所有需要的依赖项(或附加层(...您应该捆绑自己的 SDK,并将函数固定到已测试的 SDK 版本。

我认为你需要zappa.

首先创建一个虚拟环境,并将所有依赖项安装/添加到该环境中。

安装zappa并配置一些设置。然后,您可以使用zappa通过单个命令将整个代码部署到 Lambda。您可以根据需要多次重新部署。

Zappa 是一个开源库,它使在 Lambda 上的部署变得轻而易举。

通常,部署涉及将虚拟环境打包为 zip、将 zip 文件上传到 S3 存储桶、配置 Lambda 函数以及将其附加到 API 网关。

Zappa在幕后完成了所有这些工作。它与Flask,Django和其他WSGI框架配合得很好。

您可以按照这篇 Medium 文章中的步骤操作 -

https://medium.com/better-programming/a-5-minute-guide-to-python-apis-on-aws-lambda-d359630fe743

最新更新