Go ランタイム

概要

フレキシブル環境の Go ランタイムは、コードを作成して実行するソフトウェア スタックです。

フレキシブル環境で Go ランタイムを選択するには、app.yaml ファイルに次の 2 行を追加します。

runtime: go
env: flex

フレキシブル環境のランタイムは、Docker を使用してビルドされています。Go ランタイムのソースコードは GitHub で入手できます。

Go のバージョン

Go ランタイムは、次のバージョンをサポートしています。

  • 1.15
  • 1.14
  • 1.13
  • 1.12
  • 1.11
  • 1.10
  • 1.9

選択したバージョンの最新の安定版が使用されます。App Engine ではアプリのデプロイ時に新しいリリース バージョンに自動的に更新されますが、マイナー バージョンの更新は自動的に行われません。

たとえば、アプリケーションを Go 1.14.10 にデプロイすると、自動的に Go 1.14.11 に更新されますが、Go 1.15.0 に自動的にアップデートされることはありません。

パッケージをインポートする

アプリを App Engine にデプロイすると、コードがコンパイルされます。デプロイ コマンドを実行すると、まず、アプリの依存関係がローカルの GOPATH から収集され、ビルドサーバーに送信されます。サードパーティのライブラリなど、依存関係がない場合はビルドに失敗します。

ビルドの失敗を回避し、アプリのすべての依存関係がコードと一緒にデプロイされるようにするには、デプロイ前にアプリをローカルでテストする必要があります。

ランタイムの拡張

Go ランタイムを拡張してカスタマイズする方法については、GitHub の Go ランタイム ビルダーをご覧ください。

メタデータ サーバー

アプリケーションのインスタンスは、ホスト名、外部 IP アドレス、インスタンス ID、カスタム メタデータ、サービス アカウント情報など、インスタンスに関する情報を Compute Engine メタデータ サーバーからを取得します。App Engine では、インスタンスごとにカスタム メタデータを設定することはできませんが、プロジェクト単位のカスタム メタデータを設定して、App Engine インスタンスや Compute Engine インスタンスから読み取ることができます。

cloud.google.com/go/compute/metadata パッケージを使用してメタデータ サーバーにアクセスします。