これはメモです.
ディレクトリ配置
go1.11 以降かつ go modules を利用するので,これまでのように GOPATH に縛られない場所にプロジェクトディレクトリを作成できる.
様子
$ tree ./
./
├── datastore
│ ├── WEB-INF
│ │ ├── appengine-generated
│ │ │ └── local_db.bin
│ │ └── index.yaml
│ └── env.yaml
├── go.mod
├── go.sum
└── server
├── app.yaml
└── main.go
go.mod の位置ここでいいの...? みたいな些細な疑問がありませんか? 私はあります.
Datastore Emulator
↑の tree の結果からもわかるように,プロジェクトルート/datastore をdatastore emulator用のスペースとして切っている.
$ gcloud beta emulators datastore start --project=YOUR_PROJECT_NAME --data-dir=./datastore
サーバの起動
環境変数の設定
起動まえに Datastore Emulator に向くよう環境変数を設定する.
$ cloud beta emulators datastore env-init --project=YOUR_PROJECT_NAME --data-dir=./datastore
アプリケーションサーバの起動
go run でもいいし, dev_appserver.py でもいいと思う. dev_appserver.py は余分なものが色々起動するけど自動でビルドが走るし再起動もしてくれるからありがたい.が,初期起動に時間かかりすぎるのでいい方法探したい.
dev_appserver.py ./server