更改 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 或在图层中上传它。
在我看来,您有以下三种选择:
- 将模型放在 S3 上,并在 Lambda 初始化为
/tmp
时下载它。 很遗憾,您在 /tmp
中只有 512MB。如果您的模型将其大小增加到超出此范围,这将不再有效。
- 使用新功能 运行 Docker 来自 ECR 的图像作为 Lambda。因此,您可以创建一个 Docker 图像,其中已经包含您的模型和 运行 它。
- 将 EFS 卷安装到包含模型的 Lambda。 EFS 卷或多或少可以根据需要设置(请参阅 limits)。
所有这些解决方案都会增加解决方案的复杂性。我认为 S3
解决方案(选项 1)是最容易做到的,但将来可能会给您带来麻烦。它还会大大增加您的冷启动时间,因为您的 Lambda 必须下载 400MB。
使用 EFS 卷应该是最好的折衷方案。它不应该对您的冷启动时间产生太大影响,因为只需安装该卷并且不需要下载任何文件。您也不会遇到受限 512MB /tmp
.
的问题
我尝试在 AWS lambda 上部署我的无服务器函数,但出现此错误:
Unzipped size must be smaller than 262144000 bytes.
我无法降低函数大小,因为有经过训练的机器学习模型(大约 400Mb)。
有什么方法可以增加最大 lambda 大小吗?
2022 年 6 月更新
/tmp
中的本地 Lambda 存储现在可以扩展到最多 10GB,而不是我的回答中提到的 512MB。
如果您的模型是 400MB,您将无法使用 Lambda 或在图层中上传它。
在我看来,您有以下三种选择:
- 将模型放在 S3 上,并在 Lambda 初始化为
/tmp
时下载它。很遗憾,您在/tmp
中只有 512MB。如果您的模型将其大小增加到超出此范围,这将不再有效。 - 使用新功能 运行 Docker 来自 ECR 的图像作为 Lambda。因此,您可以创建一个 Docker 图像,其中已经包含您的模型和 运行 它。
- 将 EFS 卷安装到包含模型的 Lambda。 EFS 卷或多或少可以根据需要设置(请参阅 limits)。
所有这些解决方案都会增加解决方案的复杂性。我认为 S3
解决方案(选项 1)是最容易做到的,但将来可能会给您带来麻烦。它还会大大增加您的冷启动时间,因为您的 Lambda 必须下载 400MB。
使用 EFS 卷应该是最好的折衷方案。它不应该对您的冷启动时间产生太大影响,因为只需安装该卷并且不需要下载任何文件。您也不会遇到受限 512MB /tmp
.