python - 如何缩小 AWS Lambda 层的大型 python 包?

标签 python aws-lambda

我正在尝试部署一个具有大型二进制依赖项的 python 包,例如 numpyscipyastropypandas 等... zip 文件超过 400MB,因此我必须将其大小缩小到 250MB 以下才能将其部署到 S3 的 lambda 层。

我知道我可以用类似的东西删除测试、文档和 pycache 目录

find -name "tests" -type d | xargs rm -rf
find -name "docs" -type d | xargs rm -rf
find -name "__pycache__" -type d | xargs rm -rf

但这还不够……

理论上可以删除*.pyc和*.so文件吗?我知道,例如,带有 serverless-python-requirementsserverless-framework 提供了 slim 选项来打包依赖项,删除所有 *.pyc和 *.so 文件。但我认为 Lambda 环境需要这些文件......如果可能的话,我不想使用任何框架,我最终可以运行 docker 以从兼容 lambda 的图像构建二进制文件(我现在正在使用 WSL)。我尝试了很多东西,但它们不起作用,我不确定为什么...

我非常感谢您帮助我了解将如此庞大的包部署到 Lambda 的可能性和可能性...

最佳答案

作为遇到此问题时的解决方法,我按照@jordanm 的建议并切换到 Fargate 任务。

截至 2020 年 12 月,一个更简单的解决方案是使用 container image为您的 Lambda。

关于python - 如何缩小 AWS Lambda 层的大型 python 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61276309/

相关文章:

python - pika.exceptions.ProbableAuthenticationError 尝试将消息发送到远程队列时出错

python - 如何使用python获取两个地理坐标之间的行驶距离?

java - Amazon SES - Java 中的 Lambda 函数

amazon-web-services - 响应然后继续使用 AWS Lambda/API Gateway?

aws-lambda - DevOps : AWS Lambda . zip 与 Terraform

node.js - 向 Amazon SNS 发送有关 AWS DMS 任务进度的通知

python - 将序列日期列 (yyyy-mm-dd) 转换为英国日期格式(Pythonic 方式)

python - 通过 pip install 在 ubuntu 上安装 pysox,无法解析 sox.h

amazon-web-services - 在方法请求中使用 AWS_IAM 授权时是否需要 AWS Gateway 自定义授权方?

python - TensorFlow LSTM : Why does test accuracy become low, 但没有训练一个?