Go ランタイム
概要
Cloud Functions の関数は、オペレーティング システムのバージョンに加えアドオン パッケージ、言語サポート、お使いの関数をサポートして呼び出す Functions Framework ライブラリで構成される環境で実行されます。この環境は言語バージョンで識別され、ランタイムと呼ばれます。
Cloud Functions は、次の Go ランタイムをサポートしています。
- Go 1.21(推奨)
- Go 1.20
- Go 1.19
- Go 1.18
- Go 1.16
- Go 1.13
ランタイムの概要と各 Go ランタイムが使用する Ubuntu のバージョンについては、Cloud Functions の実行環境をご覧ください。
ランタイムの選択
関数を実行する Go ランタイムは、関数をデプロイするときに指定する必要があります。Go ランタイムを指定するには:
gcloud
Google Cloud CLI を使用している場合は、選択した Go ランタイムで --runtime
パラメータを使用してランタイムを指定します。例:
gcloud functions deploy FUNCTION_NAME --runtime go121 FLAGS...
FLAGS...
は関数の最初のデプロイ時に渡される引数です。必須の引数とオプションの引数については、gcloud ツールを使用したデプロイをご覧ください。
コンソール
Google Cloud コンソールを使用している場合は、Google Cloud コンソール クイックスタートで詳しい手順をご覧ください。
関数の準備
関数は、Google Cloud コンソールから直接準備することも、ローカルマシンに作成してアップロードすることもできます。Go 開発用にローカルマシンを準備するには、Go 開発環境の設定をご覧ください。
Cloud Functions で、すぐに Go の使用を開始するには、クイックスタートをご覧ください。
ソースコードの構造
Cloud Functions が関数の定義を見つけるためには、ソースコードが特定の構造に従っている必要があります。詳しくは、Cloud Functions の作成をご覧ください。
依存関係の指定
Go の Cloud Functions では、go.mod
ファイルを含む Go モジュール、または vendor
ディレクトリのいずれかによって、すべての依存関係を指定する必要があります。詳しくは、Go での依存関係の指定をご覧ください。
環境変数
Go ランタイムは、関数が必要に応じて使用する特定の環境変数を自動的に設定します。詳しくは、環境変数の使用をご覧ください。
Context
タイプ
Go の context
パッケージは Context
型を定義します。この型は、API の境界を越えてプロセス間で期限、キャンセル シグナル、その他のリクエスト スコープ値を保持します。
次の第 2 世代コードは、Pub/Sub クライアントによるコンテキスト アクセスの例を示します。