部署没有二进制文件的Lambda函数

时间:2017-03-24 08:51:10

标签: node.js amazon-web-services aws-lambda serverless-framework

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

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

1 个答案:

答案 0 :(得分:2)

您需要添加packaging configuration

serverless.yml 文件中,添加:

package:
  exclude:
    - node_modules/**

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

关于你的其他问题

  

如果尚未更新node_modules,为什么还要重新上传

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

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