如何减小 AWS Lambda 的打包 python zip 文件的大小

Hen*_*rix 11 python amazon-web-services aws-lambda

下午,

我最近遇到了 AWS Lambda 和 Azure Functions。AWS 对压缩和解压文件的大小施加了限制,对于 python 脚本需要包含所有依赖模块。我一直在使用 lambda-uploader 来打包我的脚本和它的模块依赖项,但是 pandas 包太大了。

我见过人们在 AWS Lambda 上完成机器学习和使用 Pandas 的例子(虽然有点过时),但我看不出他们是怎么做的。有什么建议?

mcr*_*ute 7

您上传到 lambda 的包不应只包含 Lambda 运行您的代码所需的代码和支持模块。Lambda 控制台 UI将文件大小限制为 10MB,但如果您将 zip 文件放在 S3 存储桶中,然后请求 Lambda 从 S3 加载它们,则您可以上传最大 50MB 的 zip 文件。

您执行所需的任何其他资产(例如机器学习模型)应单独上传到 S3,然后在执行时从您的 Lambda 函数中下载。Lambda 函数可以写入/tmp文件夹,但请记住,它只能访问 512MB 的磁盘空间。另请记住,Lambda 函数的最长运行时间为 300 秒,因此下载真正大的文件将花费您的函数对正在下载的数据进行实际工作的时间。