#はじめに
Web系の開発やってるとサクッとWebAPIサーバ建てたい・・・!けどめんどくさいことは抜きにしたい!というときありますよね?
コールバック先を指定したいけどいい感じの公開サーバがないときとか・・・
どっかのサーバからリクエスト流してもらって中身確認したい時とか・・・
シンプルに開発中のサーバを一回公開したいとか・・・
この投稿ではサクッとコマンド1発でWebAPIサーバが起動する、丸投げ系テンプレートを紹介します。
#動作環境
- MacBookPro2016 Mojave
- go version go1.10.3 darwin/amd64
- Python 3.6.5
#事前に
#リポジトリ
テンプレート置き場
https://github.com/muff1225/goserver-saisoku
#プロジェクトの構成
ファイルの構成は以下のようになっています。
.
├── .elasticbeanstalk
│ └── applicationconfig.yml
├── README.md
├── application.go
├── bin
│ └── application
└── deploy.sh
#起動方法
リポジトリからダウンロードもしくはforkして、プロジェクトの中のdeploy.shを実行します。
. deploy.sh
#解説
deploy.shの中身は以下のようになっています。
#!/bin/bash
# building to deploy the application for EB.
go build -o bin/application application.go
# validating have been installed eb command in this machine.
eb --version
if [ $? -ne 0 ]; then
echo "Please install eb command before running this script.(https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3-install.html)"
fi
# EB status check for the next command.
eb status saisoku
if [ $? -ne 0 ]; then
# create new one
eb init goserver
eb create saisoku
eb open
else
# deploy new app
eb deploy saisoku
eb open
fi
-
go build -o bin/application application.go
でアプリケーションをビルド - 環境がない場合は
eb create
でサーバ立ち上げ。(elasticbeanstalk /applicationconfig.yml
を使って初期化します。) - 環境がすでにある場合は、
eb deploy
でビルドしたアプリケーションをデプロイします。
このテンプレートを元にアプリケーションを修正する場合
ElasticBeanstalkのルールとしてgolangサーバを建てる場合、開けるポートは5000番、アプリケーションの実行ファイルはbin/application
にするようにしなければなりません。
このルールさえ守れば、アプリケーションを修正して、deploy.sh
でデプロイまで実行可能です。
#最後に
このテンプレートを使えば、サクッと自分が自由に使える環境を構成できます。(HTTPSじゃないですけど)
快適な開発をやっていきましょう!