goでGAEアプリケーションを作成する

手順

Mac OS X Yosemite(10.10.4)上でgo GAEアプリケーションを作成する。

  1. GAE SDKをインストールする
  2. configファイルを作成する
  3. goファイルを作成する
  4. 実行する

2ファイル作成する。

$ tree
.
├── app.yaml
└── todo.go

GAE SDKをインストールする

brewを使ってインストールする。

$ brew install go-app-engine-64

configファイルを作成する

アプリケーション情報をyaml形式で記述する。 ファイル名は、app.yaml固定。

アプリケーションは、デベロッパーコンソールで作成しておく。

application: go-todo-20150721 # 作成したアプリのプロジェクトID
version: 1
runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app

goファイルを作成する

ListenAndServeは不要。

  1 package todo
package todo

import (
    "fmt"
    "net/http"
)

func init() {
    http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello World")
}

実行する

実行中にファイル名を変更しても追従してくれる。

[~/work/gae/go-todo]$ goapp serve
INFO     2015-07-20 20:58:25,578 devappserver2.py:762] Skipping SDK update check.
INFO     2015-07-20 20:58:25,657 api_server.py:204] Starting API server at: http://localhost:51635
INFO     2015-07-20 20:58:25,660 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO     2015-07-20 20:58:25,662 admin_server.py:118] Starting admin server at: http://localhost:8000
INFO     2015-07-20 20:59:17,148 module.py:809] default: "GET / HTTP/1.1" 200 11
INFO     2015-07-20 21:00:24,411 module.py:442] [default] Detected file changes:
  /Users/unokun/work/gae/go-todo/hello.go
  /Users/unokun/work/gae/go-todo/todo.go
INFO     2015-07-20 21:00:36,615 module.py:442] [default] Detected file changes:
  /Users/unokun/work/gae/go-todo/todo.go

関連情報