LoginSignup
39
35

More than 5 years have passed since last update.

Google App Engine で Go

Posted at

インストール

Googleのサイト Google App Engine SDK for Go からインストールできる。

でもbrewにあったのでそこから入れてみる。

brew install go-app-engine-64

(32bit版は go-app-engine-32 )

これで dev_appserver.pyappcfg.py/usr/local/bin に配置された。

でもPythonのSDKとかとバッティングしても大丈夫なのかよくわからないので共存させるときは自分で別の場所に配置した方がいいかもしれない。

Hello, Wolrd!

myapp, myapp/hello というディレクトリをつくって2つのファイルを用意する。

myapp/
  app.yaml
  hello/
    hello.go

まず 1 つ目のファイルとして hello サブディレクトリに hello.go ファイルを書く。mainパッケージはSDK側にあるので作らなくていい。

myapp/hello/hello.go
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 ファイルを書く。

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からファイルの変更が検出できるようになる。

39
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
35