部署不带二进制文件的 Lambda 函数



我在无服务器部署方面遇到了一些问题,因为当我部署 Lambda 函数时,无服务器框架开始打包我的node_modules,但这需要很多时间。

我的意思是,如果node_modules尚未更新,为什么要再次上传。也许有人知道,如何只部署 Lambda 函数代码而不打包二进制文件?

您需要添加打包配置。

无服务器 .yml文件中,添加:

package:
exclude:
- node_modules/**

删除 AWS-SDK 模块(因为如果您不上传它们,Lambda 将使用 AWS 提供的内容 - 哪个更好)和删除开发模块(如测试框架)非常有用。但是,所有其他模块都是依赖项,需要上传这些模块才能使函数正常工作。因此,配置包设置以准确包含/排除所需的内容。

关于您的其他问题

如果尚未更新,为什么要再次上传node_modules

这不是无服务器框架的限制。这是 AWS Lambda 服务的限制。您无法部分上传 Lambda 函数。Lambda 始终要求上传的 zip 程序包包含更新的代码和所有必需的模块依赖项。

如果您的部署时间过长,也许您应该考虑将此 Lambda 函数分解为更小的单元。

最新更新