1

我正在使用无服务器框架部署 aws lambda 函数。我的问题是每次执行时都会部署一个大文件sls deploy -f any_fn(44MB) 。node_modules当有一个文件夹(可能很大)时,我遇到了类似的问题。

有没有办法通过只上传一次公共文件(并且适用于所有功能)来减少上传大小?因为现在它不断地压缩和部署同一个二进制文件,尽管它从未改变过。

4

2 回答 2

2

没有办法按照你的建议去做。AWS Lambda 要求您每次上传整个包,包括所有依赖项。一切都必须在部署到 Lambda 的 zip 文件中。

于 2017-10-22T14:24:21.307 回答
1

这是我的解决方案:

  1. 将大文件上传到 S3 存储桶。
  2. 在全局范围内执行的函数中下载所有 S3 文件,而不是在范围内exports.handler因此代码只会执行一次(对于容器)。
  3. 为了确保容器的重复使用,您应该使用CloudWatch计时器通过两个简单的步骤来保持 lambda 温暖。

这允许您仅部署小文件。

于 2018-06-13T14:19:09.653 回答