问题描述
Migrating your Elastic Beanstalk Linux application to Amazon Linux 2 - AWS Elastic Beanstalk
根据文档,不再支持aws:elasticbeanstalk:container:nodejs
命名空间,并且设置NodeCommand
的新方法是“在package.json文件中使用procfile或scripts关键字指定开始位置”脚本”。
我从没处理过procfiles,并且“ package.json文件中的scripts关键字”部分不是很清楚,它们是否要按顺序执行脚本,直到出现问题或什么?
有人知道如何在Amazon Linux 2中精确设置自定义NodeCommand吗?
解决方法
您可以在package.json
中使用script选项。例如,如果您启动EB提供的示例node.js应用程序,则文件为:
package.json
{
"name": "Elastic-Beanstalk-Sample-App","version": "0.0.1","private": true,"dependencies": {},"scripts": {
"start": "node app.js"
}
}
更新
Docs举例说明如何使用 Procfile :
您可以将Procfile添加到源包中,以指定启动应用程序的命令,如以下示例所示。 此功能替换了aws:elasticbeanstalk:container:nodejs命名空间中的旧版NodeCommand选项。
web: node index.js
不提供Procfile时,如果提供package.json文件,Elastic Beanstalk会运行npm start。如果两者都不提供,Elastic Beanstalk会按此顺序查找文件app.js或server.js,然后运行它。