我想关注these tips

并重新部署我的函数,因为serverless.yml尚未更改。

但是,它只是卡在Serverless: Uploading function阶段。永远,显然。

整个部署(使用sls deploy)可以运行,但是速度很慢。

由于显然没有错误消息,该如何调试呢?

编辑

当我使用sls deploy时,我的项目大约需要4分15秒来部署。

对我来说似乎很长,所以我想我应该改用sls deploy function -f myFunction,它应该快得多。

但是,当我尝试sls deploy function -f myFunction时,它似乎永远卡在Serverless: Uploading function: myFunction上。

我不知道该如何调试。

似乎使用'verbose'与Serverless: Uploading function: myFunction --verbose并没有什么不同,返回的消息是相同的。

我将尝试等待,看看最终该功能部署是否完成...

好吧,我等了,但是没有:在大约8分钟30秒后,我收到以下错误消息:



另一个奇怪的是:挂起时,其内容为:



但是该函数本身仅为3.2 kB,并且不包含任何程序包。

当我使用sls deploy时,显示的大小是相同的:



我的功能部署可能出什么问题?

编辑2

正如@dashmug所暗示的,serverless.yml中存在配置问题。

在我的无服务器项目的functions目录中,我想要一个通用的package.jsonnode_modules。然后,每个功能都可以根据需要导入模块。

我试图关注the official guide

我的serverless.yml像这样:

functions:
  myFunction:
    package:
      exclude:
        - 'functions/node_modules/**'
        - '!functions/node_modules/module1_I_want_to_include/**'
        - '!functions/node_modules/module2_I_want_to_include/**'

现在,我得到了sls deploy:



和功能的工作:)

但是,使用sls deploy function -f myFunction,我得到:



它确实在合理的时间内上载,但是该函数现在出现以下错误:

最佳答案

我会看的东西:

  • 尝试比较两者之间发生的情况:
    $ SLS_DEBUG=true sls deploy --verbose

    $ SLS_DEBUG=true sls deploy function -f myFunction --verbose
  • 根据项目结构检查无服务器配置(打包等)。一个危险信号是功能部署与服务部署一样大。这可能是配置错误的问题。
  • 使用serverless package查看如何压缩软件包。它可以提供一些线索。
  • 您是否在使用任何可能已更改软件包创建方式的插件?
  • 您有多少个node_modules目录?整个服务只有一个还是每个功能只有一个?
  • 关于deployment - 我不能只使用Serverless-framework 1.20.2部署功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45907122/

    10-10 06:08