使用AWS Elastic Beanstalk将Node.js和Express部署至云端

以前的设置方式似乎有所变化,
如果不设置npm start,Express将无法启动,所以我总结了一下步骤。
客户端使用的是Mac系统。

创建IAM用户

在管理控制台中创建具备所需权限的IAM用户,并获取认证信息。

AWS CLI 的安装

sudo pip install awscli
aws --version
-------
aws-cli/1.11.74 Python/2.7.13 Darwin/16.6.0 botocore/1.5.55
-------

aws configure
------
AWS Access Key ID [None]: ********
AWS Secret Access Key [None]:  ********
Default region name [None]: ap-northeast-1
Default output format [None]: 
------

安装eb命令

pip install --upgrade --user awsebcli
vi .bash_profile
-----
export PATH=~/Library/Python/2.7/bin:$PATH
-----

eb --version
------
EB CLI 3.10.1 (Python 2.7.1)
------

表达Express环境的设置

sudo npm install -g express
sudo npm install -g express-generator

创建Express项目

express test-nodejs
cd test-nodejs/
npm install

Git的初始设置

git init

cat > .gitignore <<EOT 
node_modules/
.gitignore
.elasticbeanstalk/
EOT

弹性 Beanstalk 的初次设置/应用创建


eb init --platform node.js --region ap-northeast-1
eb create --sample test-nodejs

eb status
------
Environment details for: test-nodejs
  Application name: test-nodejs
  Region: ap-northeast-1
  Deployed Version: app-e465-170525_182949
  Environment ID: e-v7aa4cmhbi
  Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/Node.js running on 64bit Amazon Linux/4.1.0
  Tier: WebServer-Standard
  CNAME: test-nodejs.xxxxxxxxx.ap-northeast-1.elasticbeanstalk.com
  Updated: 2017-05-25 09:31:52.871000+00:00
  Status: Ready
  Health: Green

完成了Elastic Beanstalk的环境设置。

eb open
スクリーンショット 2017-05-25 20.58.26.png

我們將從這裡開始部署Express應用程式。

使用ElasticBeanstalk来配置运行Express的设置。


mkdir .ebextensions

vi .ebextensions/nodecommand.config
------
option_settings:
  aws:elasticbeanstalk:container:nodejs:
    NodeCommand: "npm start"
-------

顺便提一下,如果不执行这个步骤,Express就无法启动并会出现502错误。

スクリーンショット 2017-05-25 18.28.22.png

应用程序的部署 de

vi views/index.jade
-----
extends layout

block content
  h1= title
  p Welcome to AWS
------

git add .
git commit -m "First express app"    
eb deploy

eb open

无事应用程序显示出来了

スクリーンショット 2017-05-25 18.32.15.png

请参考

广告
将在 10 秒后关闭
bannerAds