serverless.yml 中的运行时变量未设置节点版本

Posted

技术标签:

【中文标题】serverless.yml 中的运行时变量未设置节点版本【英文标题】:Runtime variable in serverless.yml isn't setting node version 【发布时间】:2019-11-14 15:33:50 【问题描述】:

我在 aws 上运行 lambda 函数并使用无服务器进行部署。将 node 从 6.10 更新到 10.16,我用 n 更新了 nodejs,并将 serverless.yml 文件中的“runtime”行更改为:

provider:
  name: aws
  runtime: nodejs10.16
  stage: prod
  region: us-west-2

当我使用无服务器进行部署时,我收到以下消息:

Serverless Error ---------------------------------------

  An error occurred: GetLaunchEventListLambdaFunction - 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: abc26ccc-9289-431f-abd6- 
61a73bdb4c2e).

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

  Your Environment Information -----------------------------
     OS:                     linux
     Node Version:           6.10.3
     Serverless Version:     1.27.3

我错过了什么?

【问题讨论】:

我必须进入 AWS 控制台并更改运行时(节点版本) - 然后它将允许 cloudformation/serverless 更新 【参考方案1】:

正确的语法应该是runtime: nodejs10.x,但我来到这里是因为即使(我想是)正确的语法我也有同样的问题。

【讨论】:

这为我修好了,谢谢。你得到它为你工作了吗? 我还尝试了 Anatolii Bivol 在评论中写的内容,但也没有用。最后我删除了堆栈并再次重新部署

以上是关于serverless.yml 中的运行时变量未设置节点版本的主要内容,如果未能解决你的问题,请参考以下文章

Serverless.yml:在另一个中引用现有的环境变量

无法在 serverless.yml 中引用 CloudFormation 资源。变量 UserPoolId 的变量引用语法无效

如何在 serverless.yml 文件中获取 AccountId 作为变量?

无法解析“serverless.yml”:映射条目的缩进错误

将 Lambda 函数分配给 serverless.yml 中的特定 VPC ID

VB6中的“对象变量或块变量未设置”运行时错误