作成からdeployまで
シンプルな Google App Engine アプリケーションの作成からサーバ転送まで駆け足で紹介。
app.yaml の準備
以下は go を使う時のシンプルなapp.yaml
application: プロジェクト名
version: 1
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
goファイルの用意
とりあえずチュートリアルにあったもの
hello.go
package goplus import ( "fmt" "net/http" ) // init is called before the application starts. func init() { // Register a handler for /hello URLs. http.HandleFunc("/", hello) } // hello is an HTTP handler that prints "Hello Gopher!" func hello(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, Gopher!") }
動作確認
サーバに転送する前に動作確認したい場合は
dev_appserver.py app.yaml
を使ってローカルにサーバを起動して、 http://localhost:8080/ にアクセスする事でサーバに転送せずに動作確認ができます。
ssh でgceなどの別サーバにログインして作業している時は gui のブラウザは多分使えないので、ローカルサーバをバックグラウンドで実行して curl などで確認する感じになります。
dev_appserver.py app.yaml&
curl localhost:8080
ちなみに、go を使っている場合は、同様のことが
goapp serve app.yaml
で実現可能です。
サーバに転送(初回deploy時は要認証)
app engine のサーバに転送することで、他の人も実行できるようになる。
サーバに初めて転送する場合、ブラウザが起動してgoogleアカウントでログインする必要がある。
私はここでちょっとはまった。
通常は
appcfg.py update app.yaml
と入力したあと、ブラウザが勝手に起動してgoogle アカウントで認証、App Engine とのヒモ付けをするのだけど、GCE に ssh でログインしていると、起動するブラウザがテキストベースで画面が乱れてうまく認証するまで進めなかった。
こういう時は
appcfg.py --noauth_local_webserver update app.yaml
と実行すると表示されんurlを別のブラウザで表示&認証。その後表示される文字列を入力する事で認証ができる。
サーバに転送(別コマンド)
go を使う場合、appcfg.py ではなく goapp を使って転送することも可能。
goapp deploy app.yaml