首页 > 解决方案 > 如何使用无服务器将 Angular 应用程序部署到 AWS 来解决 ApiLambdaFunction 错误

问题描述

我正在尝试按照教程中的步骤使用无服务器程序包将我的 Angular 应用程序部署到 AWS。

我已正确执行了这些步骤,并运行了npm run build:serverless:deploy,但我在控制台中收到以下错误消息,而不是成功部署应用程序:

发生错误:ApiLambdaFunction - nodejs6.10 的运行时参数不再支持创建或更新 AWS Lambda 函数。我们建议您在创建或更新函数时使用新的运行时 (nodejs10.x)。(服务:AWSLambdaInternal;状态代码:400;错误代码:InvalidParameterValueException;请求 ID:dba0ade8-1f2c-4dc7-8ddc-c2966a54a67c)。

当我node -v在命令行中运行时,我看到它的版本是 10.14.1。

但是,我确实找到了以下nodejs6.10参考serverless.yml

provider:
  name: aws
  runtime: nodejs6.10
  memorySize: 192
  timeout: 10
  stage: production
  region: eu-central-1

有人可以告诉我为什么会发生这种情况以及如何解决吗?

标签: amazon-web-servicesaws-lambdaserverless-framework

解决方案


发生这种情况的原因是您试图将在您的 Lambda 函数中运行的 Node.js 版本设置为 Node.js 6,而这不再受支持。

serverless.yml将您的文件更改为

provider:
  name: aws
  runtime: nodejs10.x
  memorySize: 192
  timeout: 10
  stage: production
  region: eu-central-1

错误信息虽然很清楚。AWS 在一两个月前停止了对 Node.js 6 的支持。只有最初在此版本中创建的功能仍然有效。不能再在 Node.js 6 中创建新功能。老实说,无论如何,没有一个原因有人愿意这样做。

https://aws.amazon.com/blogs/developer/node-js-6-is-approaching-end-of-life-upgrade-your-aws-lambda-functions-to-the-node-js-10- lts/


推荐阅读