2017年ぐらいはちょいちょいGAE/goとか触ってたんですが、すっかりご無沙汰になっていました。
久しぶりにgolangやGAE/goを触って楽しいなぁと。
今回の学んだこと
- とりあえずアプリを作ってdeployする
- データストアを使かったローカルでの開発を試す
とりあえずアプリを作ってdeployする
gcloudコマンドをが入ってなかったのでまずは、gcloudをmacにインストールする。
https://cloud.google.com/sdk/docs/?hl=ja#install_the_latest_cloud_tools_version_cloudsdk_current_version
ここから「macOS 64 ビット(x86_64)」のファイルを取得する。
gzを解凍して ./google-cloud-sdk/install.sh
を実行する。
適当にプロジェクトを用意する
|
|
app.yamlを用意する
|
|
コードを書く
|
|
デプロイする
|
|
データストアを使かったローカルでの開発を試す
Datastoreですかね。。
— Ikeda Daigo (@hogedigo) August 14, 2020
↓でDatastore Emulator動かしておきます。https://t.co/eYQ7KfwN8D
そんで
$(gcloud beta emulators datastore env-init)
で環境変数設定してからアプリをgo runすればいけます。
ローカルで動かすためにエミュレータを入れる
|
|
環境変数を設定する
|
|
環境変数を削除するときには以下の通り
|
|
エミュレータの起動
|
|
エミュレータのと本番えの接続の切り替えについて
どうやって切り替えるのかなと思ったら、どうやらdatastore.goで DATASTORE_EMULATOR_HOST
を見て判定している。
GitHub Actions上でGCP Datastoreエミュレータを使ったテストを実行する
コードを書く
基本的には以下の記事を参考にしている。 https://cloud.google.com/appengine/docs/flexible/go/using-cloud-datastore?hl=ja
|
|
appengine.Main()について
サンプルコードにはappengine.Main()を実行していましたが、これなんのためにあるかわからなかったので、調べてみました。
https://t.co/yiLDPp3fxl
— polidog (@polidog) August 14, 2020
「https://t.co/GpkmNXrorYパッケージ(Appengine SDK)を引き続き利用できますが、その際にはmainパッケージでappengine.Main() を実行する必要があります。」なるほど。
そもそもAppengine SDK使う必要はなさそうなので、appengine.Main()
は消しときました。
最後に
Stay Homeなお盆で、暇だったので久しぶりのGAE/go触ってみました。
Golangの文法からわからないレベルだったのですが、とりあえずローカルでの開発感触はつかめたのでなにか簡単なサービスは作ってみようかと思います。
最後の最後に
これからgolang始めたい人は、このyoutubeみると良いかと思います!