【问题标题】:serverless plugin warmup cannot be found by severless deployment无服务器部署找不到无服务器插件预热
【发布时间】:2020-01-28 08:11:13
【问题描述】:

我尝试在 AWS 上部署 lambda 时遇到以下错误。

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).

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

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 上部署时出了什么问题。 部署脚本是

"deploy:staging": "cross-env NODE_ENV=staging sls deploy -s staging"
  • 我已经从 3.0.0-rc.1 升级了 serverless-plugin-warmup 版本 到 4.0.0-rc.1。
  • 我已将 AWS 上的节点版本从 6.10 升级到 8.10

serverless.yml

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

【问题讨论】:

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


    【解决方案1】:

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

    provider:
      runtime: nodejs8.10
    

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

    对于您的第二个错误,您的“升级”可能不太顺利,您需要再次安装 npm。它告诉您您指定了“serverless-plugin-warmup”,但在您的 node_modules 中找不到它。您可能必须删除您的 package-lock.json 和/或您的 node_modules 文件夹并重新安装 npm。确保将它列在 package.json (npm i serverless-plugin-warmup -D) 中。

    【讨论】:

    • 更新节点后我遇到了第二个错误,您提供的解决方案有效。谢谢
    • 没问题。您介意将其标记为已接受的答案/解决方案并单击向上箭头吗? :)
    猜你喜欢
    • 2020-05-09
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2021-01-07
    • 2019-08-26
    • 2023-01-27
    • 2018-02-28
    • 2021-08-22
    相关资源
    最近更新 更多