首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过无服务器部署无法找到无服务器插件热身。

通过无服务器部署无法找到无服务器插件热身。
EN

Stack Overflow用户
提问于 2019-09-28 06:52:16
回答 1查看 1.9K关注 0票数 0

当我试图在AWS上部署lambda时,我得到了下面的错误。

代码语言:javascript
复制
Serverless Error ---------------------------------------
An error occurred: WarmUpPluginLambdaFunction - The runtime parameter of nodejs6.10 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs10.x) while creating or updating functions. (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: 5211b05e-0bd4-40d7-9555-9aac489053d0).

所以,我升级了无服务器插件热身的版本。现在,当我试图在AWS上部署无服务器的lambda时,会出现以下错误。该插件在节点6.10上运行良好

代码语言:javascript
复制
Serverless Error ---------------------------------------

  Serverless plugin "serverless-plugin-warmup" not found. Make sure it's installed and listed in the "plugins" section of your serverless config file.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information -----------------------------
     OS:                     linux
     Node Version:           8.10.0
     Serverless Version:     1.35.1

这里需要一些洞察力,在AWS上部署的时候出了什么问题。用于部署的脚本是

代码语言:javascript
复制
"deploy:staging": "cross-env NODE_ENV=staging sls deploy -s staging"

  • I已将无服务器插件-预热版本从3.0.0-rc.1升级到4.0.0-rc.1。
  • i将AWS上的节点版本从6.10升级到8.10

serverless.yml

代码语言:javascript
复制
plugins:
  - serverless-plugin-warmup
  - serverless-offline
  - serverless-domain-manager
  - serverless-log-forwarding

custom:
  warmup:
    schedule: 'cron(0/10 12-23 ? * MON-FRI *)'
    prewarm: true

functions:
 myFunction:
    warmup: ${self:provider.environment.CRON}
    handler: handler.myFunction
    events:
      - http:
          path: '{model}/{id}'
          method: GET
          authorizer: auth
          cors:
            origins:
              - ${self:provider.environment.APP_DOMAIN}
            headers: ${self:custom.headers}
            allowCredentials: true
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-28 08:56:16

对于第一个错误,尝试将其添加到根级别的serverless.yml文件中(与插件、函数和自定义级别相同):

代码语言:javascript
复制
provider:
  runtime: nodejs8.10

这将确保您的部署在正确的运行时(全局)运行。或者,您可以在lambda下添加运行时设置(与预热级别相同),以便单独选择运行时。

对于你的第二个错误,很可能你的“升级”不顺利,你需要做另一个npm安装。它告诉您您已经指定了“无服务器插件-热身”,但是它在您的node_modules中找不到它。您可能需要删除您的包-lock.json和/或您的node_modules文件夹,并执行新的npm安装。确保在您的package.json (npm i serverless-plugin-warmup -D)中列出了它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58144052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档