インストール
Googleのサイト Google App Engine SDK for Go からインストールできる。
でもbrewにあったのでそこから入れてみる。
brew install go-app-engine-64
(32bit版は go-app-engine-32
)
これで dev_appserver.py
や appcfg.py
は /usr/local/bin
に配置された。
でもPythonのSDKとかとバッティングしても大丈夫なのかよくわからないので共存させるときは自分で別の場所に配置した方がいいかもしれない。
Hello, Wolrd!
myapp
, myapp/hello
というディレクトリをつくって2つのファイルを用意する。
myapp/
app.yaml
hello/
hello.go
まず 1 つ目のファイルとして hello
サブディレクトリに hello.go
ファイルを書く。mainパッケージはSDK側にあるので作らなくていい。
package hello
import (
"fmt"
"net/http"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, world!")
}
次に 2 つ目のファイルとしてアプリケーション構成 app.yaml
ファイルを書く。
application: helloworld
version: 1
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
そして dev_appserver.py
にアプリケーションのディレクトリを渡して起動する。
dev_appserver.py --admin_port=9998 --port=9999 myapp/
http://localhost:9999/ を開くと表示される。
ファイルの変更を監視しているので dev_appserver.py
を再起動しなくても、ブラウザをリロードしたら変更を確認できるよとあるが、OS Xの場合、python からシステムにアクセスするために PyObjC が必要。Homebrewでpythonをインストールしていれば pip
も入っているので
pip install -U pyobjc
でインストールする。これでGo SDKからファイルの変更が検出できるようになる。