尝试将Node.js应用程序部署到AWS ElasticBeanstalk
我将总结在使用AWS ElasticBeanstalk发布一个非常简单的Node.js应用程序的方法。这是根据下面的视频制作的,您可以观看下面的视频。此外,官方文件中还介绍了使用Node.js和Express发布应用程序的方法。由于本文仅涵盖了最基本的内容,因此在实际发布实用性应用程序时,请参考官方文档。
首先,在开始工作之前,有几件必要的事情。
在Git上注册并创建AWS账户。
假定您已经进行了这些步骤,这并不是一个难度很高的工作,请自行查阅并进行。
然后,要通过命令行操作ElasticBeans需要下载EB CLI。
请参考这个网站并进行安装。
只需在终端上输入以下命令即可。
$ pip install awsebcli --upgrade --user
另外,我之前无法成功安装,但通过省略–user参数进行安装后,成功运行起来了。
可以在终端上检查是否已安装。
eb --version
如果打出这个命令,就会返回ebcli的版本,如果安装完成的话。
如果不能成功,希望您参考上面贴出的官方文档。
然后,打开终端并创建一个用于应用程序的目录。
接着,创建一个 .git 仓库,并打开代码编辑器。
$ mkdir nodejs-project1
$ cd nodejs-project1
$ git init
$code .
并且,在项目目录中创建一个.gitignore文件,并在其中写入以下内容。
在这里写入的文件将不会被Git处理。
node_modules/
.gitignore
.elasticbeanstalk/
然后,在终端上开始使用elasticbeans。
eb init --platform node.js --region ap-northeast-1
在这里的地区是在创建帐户时指定的地区。
在AWS控制台页面的右上角,如果点击下方图片上标有“东京”的部分,即可知道自己所在的区域。
然后,按Enter键会要求输入账户ID和密钥ID。
这是在AWS控制台页面右上角标有”Yusuke Someya”的部分,选择安全凭证(Security Credentials),然后向下滚动,会看到一个名为Access keys的地方,从那里选择创建访问密钥(Create access key)并进行复制粘贴。密钥的信息也会同时生成。
当执行此操作时,将创建一个名为.elasticbeanstalk的文件夹,并在其中创建一个config.yml文件。
该文件中最初有许多空值(null)。我们需要填充这些值。
这次我们将在null的位置填入默认值。
eb create --sample nodejs-project1-env
用”nodejs-project1-env”作为环境名称,来设置样本的值。
然后就变成了这样。
然后,在项目目录的最顶层创建一个名为.ebextensions的文件夹。
然后,在该文件夹下创建一个名为Procfile的文件。
web: npm start
然后,在Procfile中添加以下内容。
接下来,需要安装Node.js的包。在终端中输入以下代码。
npm init
只需要将入口点更改为app.js,然后按下Enter键即可,无需进行其他操作。
我认为已经创建了package.json文件,所以在其中的“Script”部分加上”start”: “node .”。也就是说,package.json的内容如下:
{
"name": "nodejs-project",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
}
}
然后在终端上下载Express。
npm i express
在这样做之后,在项目的根目录下创建app.js文件并进行编写。
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("This is my first node.js project :)")
})
app.listen(process.env.PORT || 3000);
準備完成后,通过终端逐步在git上提交。然后,通过elasticbeanstalk进行部署。输入以下代码以及环境名称。
git add .
git commit -m"first express app"
eb deploy nodejs-project1-env
完成部署后,请确保一切正常。
eb open
假设这样的话,你创建的应用程序会显示出来。
只有这个显示出来了,但是我做得很好。以上。