😸
GAE Go (2nd Gen) スタンダード環境で Go 1.20 を使う
GAE Go ランタイムのサポートスケジュール
GAE スタンダード環境で古い Go ランタイムのサポート期限が迫っている。
ランタイム サポートのスケジュール | Google App Engine スタンダード環境のドキュメント | Google Cloud
自分が関わっているプロジェクトでは go115 を使用していて、2024年1月30日までに Go 1.19 以上に更新する必要がある。
そもそも新しい Go を使いたかったのだが、多くのパッケージが appengine
に依存していて、Go 1.16 以上では dev_appserver を使った開発で appengine が使えなかったため、アップデートを様子見していた。
go120
を指定するとエラー
期限も迫ってきたので重い腰を上げてアップデートしようと思ったところ、どうやら google cloud sdk のバージョンアップで Go 1.20 も dev_appserver で利用できることがわかった。
ただし、そのままでは datastore が利用できず以下のようなエラーが発生する。
service bridge HTTP failed: Post "http://appengine.googleapis.internal:10001/rpc_http": dial tcp: lookup appengine.googleapis.internal: no such host
解決方法
google app engine - service bridge HTTP failed error when using dev_appserver.py - Stack Overflow
リンク先に書いてあるとおりで、報告済みのバグなのでしばらく待てば修正されると思われる。
当分の間は該当ファイルを少し編集すればエラーはできなくなる。
google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/http_runtime.py
# Runtimes which need
_RUNTIMES_NEED_VM_ENV_VARS = [
'go111',
'go114',
'go115',
'go120', # <--- 使いたいランタイムを追加
]
Discussion