【问题标题】:Deploy Lambda functions without binaries部署没有二进制文件的 Lambda 函数
【发布时间】:2017-03-24 18:07:45
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    您需要添加packaging configuration

    在您的 serverless.yml 文件中,添加:

    package:
      exclude:
        - node_modules/**
    

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

    关于你的其他问题

    node_modules没有更新为什么还要上传

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多