在Elastic Beanstalk中更新Nodejs版本

Gui*_*rmo 7 amazon-web-services node.js

我们在生产中遇到了节点版本的一些问题,因此我们将package.jsonfrom中所需的版本更改0.10.06.2.2..

  "engines": {
    "node": ">= 6.2.2"
  }
Run Code Online (Sandbox Code Playgroud)

但是在Elastic Beanstalk中,创建新实例时,它们的节点版本为0.10.0.我们如何更新Elastic Beanstalk中的版本,以便创建的新实例具有所需的版本package.json

非常感谢你.

nba*_*las 10

验证版本是否受支持

对于Node.js,大多数较新的Beanstalk平台最高为6.2.2,因此如果你的平台版本是最新的,你应该拥有它(Node.js的当前平台版本是v2.1.3).

如果您不想更新当前平台,可以使用AWS CLI验证哪些版本有效:

aws elasticbeanstalk describe-configuration-options --solution-stack-name "64bit Amazon Linux 2016.03 v2.1.3 running Node.js" --options "OptionName=NodeVersion, Namespace=aws:elasticbeanstalk:container:nodejs"
Run Code Online (Sandbox Code Playgroud)

哪个应该返回类似:

{
    "Options": [
        {
            "Name": "NodeVersion",
            "UserDefined": false,
            "DefaultValue": "4.4.6",
            "ChangeSeverity": "RestartApplicationServer",
            "Namespace": "aws:elasticbeanstalk:container:nodejs",
            "ValueType": "Scalar",
            "ValueOptions": [
                "0.8.28",
                "0.10.46",
                "0.12.15",
                "4.4.6",
                "5.12.0",
                "6.2.2"
            ]
        }
    ],
    "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.3 running Node.js"
}
Run Code Online (Sandbox Code Playgroud)

让它工作

为了使您的应用程序能够以正确的节点版本启动,您必须为特定版本设置选项设置.这可以通过多种方式完成.

Web UI

导航到您的环境的Configuration选项卡,然后导航到Software Configuration面板以更改Node版本设置.完成后单击"应用"以将更改部署到您的环境.

AWS CLI

您可以通过命令行界面使用正确的选项设置更新环境.

aws elasticbeanstalk update-environment --environment-name yourEnvName --option-settings "OptionName=NodeVersion, Namespace=aws:elasticbeanstalk:container:nodejs, Value=6.2.2"
Run Code Online (Sandbox Code Playgroud)

以下是一些特定于Node.js平台的附加选项设置.