Posted at

Google CloudのAppEngineでGo v1.12を使ったときにハマったこと

Google Cloud PlatformのAppEngine(PaaS)の公式ドキュメントでは、色々サンプルや使い方が書いてあるのですが、日本語翻訳されている情報が足りない+Goランタイムに関する情報がすくないので、ちょっとハマりました。

https://cloud.google.com/appengine/docs/standard/go/runtime?hl=ja <-この辺ね


go112 では"google.golang.org/appengine"は使っちゃダメ

いろんなサンプルでこれを使ってるのですが、対応しているのはgo111までです。go112使う場合は使うと問題が出ます。主にcontext使ってAPI呼ぶとこでコケます。


もちろんappengine.main()は使わない

go111とかの場合は,appengineのcontext渡さないと、「これはappengineのcontextじゃないです」的なエラーで動かなかったりしたのですが、go112では使わない。 APIは"cloud.google.com/go"を使う


Mail APIは使えない?

ちゃんと検証していないのですが、Mail APIのコードもドキュメントもappengineパッケージを使う前提で書かれているので、たぶん無理。ドキュメントにも「sendgridとか使ってね」って書いてあった


詳しくはこちら(英語)

https://cloud.google.com/appengine/docs/standard/go112/