GAE/Go チュートリアルメモ: SDK、開発サーバー、デプロイ
Snapchat を支える技術:768 台の Redis を Google クラウドで構築 - Qiita を読んで GAE を試したくなった。 そこで GAE の Go チュートリアルをやったのでメモ。環境は Mac OS X 10.9.2。
GAE は 4 年前に Python を少し動かした程度。Go はほぼ初心者。
Google App Engine SDK for Go インストール
Homebrew で。Go も入っている:
brew install go-app-engine-64
開発サーバー
開発サーバーを起動:
goapp serve
goapp
コマンドは dev_appserver.py
をラップしたもの。
-h
オプションでポートを指定するためのオプションなどを確認できる。
以下の URL にアクセスできるようになる:
- 開発サーバー: http://localhost:8080/
- 管理画面: http://localhost:8000/
コードが変更されたら新しいコードを読み込んでくれる。
デプロイ
あらかじめ App Engine Console でアプリケーションを作成しておく。
GAE にデプロイ:
goapp deploy
2 分程待っても完了しないので一旦 Ctrl-C
で止めた後に、再度デプロイ
しようとしたらエラーになった。
以下のコマンドでロールバックすることで解決:
appcfg.py rollback .
初回デプロイは時間がかかるようだ。10 分程かかった。
デプロイ後も Datastore のインデックスを構築するためもう少し待たされる。
インデックスの構築ステータスはコンソールの Datastore Indexes から確認できる。
構築ステータスが Building
から Serving
になったら準備完了。
自分のアプリケーション(http://your_app_id.appspot.com/
)にアクセスすると、
チュートリアルで作成したゲストブックが表示される。
チュートリアルは親切で分かりやすいと思う。セットアップは簡単だし、 コマンドは分かりやすいし、Go も親しみやすい。
Hello, world! から始まり、html/template
というテンプレートエンジン、
Google ユーザーアカウントを使用したログイン処理、
Datastore を使用したゲストブックの作成、GAE へのデプロイを学べる。
取っ掛かりとしては良いと思った。
チュートリアルで書いたコードは以下に置いている: https://github.com/chocoby/tutorials/tree/master/gae-golang
まずは小さいアプリを GAE/Go で作りたい。