【问题标题】:Serverless Lambda deployment in node8.10 not uploading any codenode8.10中的无服务器Lambda部署不上传任何代码
【发布时间】:2019-03-03 06:38:36
【问题描述】:

我有一个使用无服务器部署的 lambda 函数。它是使用 node6.10 运行时部署的,所以我决定使用 node8.10 运行时重新部署服务。

但是,在进行此重新部署后,我遇到了一个奇怪的问题,即我无法调用该函数,并且由于文件大小太大(60mb+)而无法再为该函数部署更新。我能够通过卸载并重新安装 serverless-plugin-optimize 来解决此问题。

这解决了文件大小问题(现在大约 2mb),但我仍然无法调用该函数。尝试调用它会在 CloudWatch 中产生以下日志:

Unable to import module 'lambda/index': Error
  at Function.Module._resolveFilename (module.js:547:15)
  at Function.Module._load (module.js:474:25)
  at Module.require (module.js:596:17)
  at require (internal/module.js:11:18)

我当时的预期是我的 serverless.yml 中函数的文件路径错误,或者它没有正确导出。

./serverless.yml

functions:
  funcOne:
    handler: lambda/index.handler

./lambda/index.js

exports.handler = function (event, context) {

// execution code

};

然而这似乎并非如此,我知道这一点是因为为serverless-plugin-optimize 设置debug: true 留下了带有我的缩小代码的_optimize 文件夹。然而,尽管它存在于本地,但它似乎是没有上传到 Lambda。

在 AWS 控制台中查看此内容,我得到以下信息:

Lambda 目录中列出的 2.6mb 上传:

Lambda 控制台代码编辑器出错

60mb 文件仍列在 S3 部署存储桶中

我无法解释为什么会遇到这个问题,或者切换到 node8.10 会导致什么问题。在serverless.yml 文件之外,没有任何代码从工作node6.10 版本更改。有没有人遇到过这个问题或知道任何可以解决它的方法?

【问题讨论】:

    标签: amazon-web-services aws-lambda serverless-framework serverless-plugins


    【解决方案1】:

    我现在已经成功解决了这个问题。我不知道为什么会这样,但问题似乎在于使用旧版本的无服务器(1.27.2)部署到 node8.10。升级到最新版本的无服务器 (1.32.0) 立即修复了它。

    【讨论】:

      猜你喜欢
      • 2020-01-29
      • 1970-01-01
      • 2021-07-09
      • 2018-09-09
      • 2022-01-20
      • 1970-01-01
      • 2021-01-14
      • 2018-12-08
      • 1970-01-01
      相关资源
      最近更新 更多