Serverless App作成ツール Up を利用してみた
概要
up と呼ばれるツールを利用してみました。
(Introductionをそのまま試してみただけです。)
upとは?
Serverless Applicationを簡単に作成、デブロイできるツールです。
現状の構築環境と方式は、下記のとおりです。
対応言語
個人的にはGolangに対応しているのが良いですね。
(Lambda自体はまだ、Golang対応していないので)
手順
こちらのサイト に記載のまんまです。
1. Install
curl直接 or npm
# curl版 % curl -sfL https://raw.githubusercontent.com/apex/up/master/install.sh | sh # npm版 (内部で上記curlを叩いているだけです) % npm i -g up
2. AWS Credenstialsの設定
~/.aws/credentials
に追記が楽かと思います。
[go-up-test] aws_access_key_id = xxxxxxxx aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxx
3. up.json
(設定ファイル)作成
必須の項目は、profile
のみです。
~/.aws/credentials
で設定したprofile名と合わせてください。
{ "profile": "go-up-test", "regions": ["ap-northeast-1"] }
4. 好きな言語でサーバー側の処理を記載
package main import ( "fmt" "log" "net/http" "os" ) func main() { addr := ":" + os.Getenv("PORT") http.HandleFunc("/", hello) log.Fatal(http.ListenAndServe(addr, nil)) } func hello(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello go-up-test") }
5. Deploy
# develop環境へのDeploy % up # production環境へのDeploy % up deploy production
6. 確認
# ブラウザでOpen % up url --open # ClipbordにCopy % up url --copy
% curl "https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/development/" Hello go-up-test
補足
# past 5 minutes % up logs # real time log % up logs -f
up stack delete
で作成したresourcesを全て削除できます
サンプルコード
所感
AWSの設定さえ終わっていれば、非常に簡単にServerless Appを作成できると感じました。Slack Commandが簡単に作れるようなので、試してみたいです。 (元々、SlackのSlash Commandを簡単に作れるという記事を見かけて、興味を持ちました。)