更改 AWS lambda 的最大大小

Change maximum size of AWS lambda

我尝试在 AWS lambda 上部署我的无服务器函数,但出现此错误:

Unzipped size must be smaller than 262144000 bytes.

我无法降低函数大小,因为有经过训练的机器学习模型(大约 400Mb)。

有什么方法可以增加最大 lambda 大小吗?

2022 年 6 月更新

/tmp 中的本地 Lambda 存储现在可以扩展到最多 10GB,而不是我的回答中提到的 512MB。


如果您的模型是 400MB,您将无法使用 Lambda 或在图层中上传它。

在我看来,您有以下三种选择:

  1. 将模型放在 S3 上,并在 Lambda 初始化为 /tmp 时下载它。 很遗憾,您在 /tmp 中只有 512MB。如果您的模型将其大小增加到超出此范围,这将不再有效。
  2. 使用新功能 运行 Docker 来自 ECR 的图像作为 Lambda。因此,您可以创建一个 Docker 图像,其中已经包含您的模型和 运行 它。
  3. 将 EFS 卷安装到包含模型的 Lambda。 EFS 卷或多或少可以根据需要设置(请参阅 limits)。

所有这些解决方案都会增加解决方案的复杂性。我认为 S3 解决方案(选项 1)是最容易做到的,但将来可能会给您带来麻烦。它还会大大增加您的冷启动时间,因为您的 Lambda 必须下载 400MB。

使用 EFS 卷应该是最好的折衷方案。它不应该对您的冷启动时间产生太大影响,因为只需安装该卷并且不需要下载任何文件。您也不会遇到受限 512MB /tmp.

的问题