概要
フレキシブル環境の 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
パッケージを使用してメタデータ サーバーにアクセスします。