このページでは、 Google Cloud サービスで拡張性を実装するために使用できる Service Extensions プラグインを作成する方法について説明します。
この機能は、Media CDN のプレビュー版です。
プロダクトの概要については、Service Extensions の概要をご覧ください。
始める前に
プラグインの作成に必要なファイルを準備してアップロードします。
Network Services API がまだ有効になっていない場合は、有効にします。
gcloud services enable networkservices.googleapis.com
Media CDN プラグインでロギングを有効にする場合は、Network Actions API を有効にします。
gcloud services enable networkactions.googleapis.com
プラグイン リソースを作成する
プラグイン リソースを作成するには、プラグイン コードを含むイメージを指定し、プラグインのラベルとロギング オプションを指定します。
コンソール
プラグインを作成する手順は次のとおりです。
Google Cloud コンソールで、[Service Extensions] ページに移動します。
[Plugins] タブをクリックします。
[プラグインを作成] をクリックします。
[基本] セクションで、次の操作を行います。
[スコープ] で、[グローバル] または [リージョン] を選択します。
スコープを [リージョン] に設定した場合は、リージョンも選択します。
一意のプラグイン名を入力します。
名前は先頭を小文字にして、その後に 62 文字以下の小文字、数字、ハイフンで構成します。末尾をハイフンにすることはできません。
省略可: プラグインの簡単な説明を 1,024 文字以内で入力します。
[Wasm イメージ] セクションで、次の操作を行います。
[プラグイン バージョン名] に、プラグイン バージョンの名前を指定します。
名前は先頭を小文字にして、その後に 62 文字以下の小文字、数字、ハイフンで構成します。末尾をハイフンにすることはできません。
省略可: [プラグイン バージョンの説明] に、プラグイン バージョンの簡単な説明を 1, 024 文字以内で入力します。
[イメージ URL] に、Artifact Registry ペインから Wasm モジュールを含む汎用アーティファクトまたはコンテナ イメージの URL を入力します。汎用リポジトリを使用するオプションはプレビュー版です。
Docker リポジトリでコンテナ イメージを指定する場合は、[選択] をクリックして参照し、選択することもできます。[Artifact Registry] ペインに、現在のプロジェクトに接続されているリポジトリ内のフォルダが表示されます。
別のプロジェクトからイメージを選択するには、Service Extensions がそのイメージにアクセスできることを確認してから、プロジェクト名の横にある [変更] をクリックします。
省略可: [プラグイン構成] セクションで、構成データをプラグインに関連付けるには、[プラグイン構成を追加] チェックボックスをオンにして、次のいずれかのオプションを選択します。
プラグイン構成ファイルをアップロードする。ファイルサイズが 900 KiB 未満で、ローカル ドライブにある場合は、[参照] をクリックしてファイルを見つけて選択します。
Artifact Registry からプラグイン構成イメージまたはアーティファクトを選択する。Artifact Registry ペインから、Wasm モジュールを含む汎用アーティファクトまたはコンテナ イメージの URL を入力します。汎用リポジトリを使用するオプションはプレビュー版です。
Docker リポジトリでコンテナ イメージを指定するには、[選択] をクリックして参照し、選択することもできます。[Artifact Registry] ペインに、現在のプロジェクトに接続されているリポジトリ内のフォルダが表示されます。
省略可: [ラベル] セクションで [ラベルを追加] をクリックします。表示された行で、次の操作を行います。
- [キー] にキー名を入力します。
- [値] にキーの値を入力します。
最大 64 個の Key-Value ペアを追加できます。Key-Value ペアをさらに追加するには、[ラベルを追加] をクリックします。
ラベルの詳細については、プロジェクトのラベルを作成、更新するをご覧ください。
[暗号化] セクションで、プラグインの暗号化方式を選択します。このオプションは、リージョン プラグインでのみ使用できます。
- Google が管理する暗号鍵。Google のデフォルトの暗号化メカニズムを使用してプラグイン コンテンツを暗号化します。
- Cloud KMS 鍵。Cloud Key Management Service を使用して作成された顧客管理の暗号鍵でプラグインのコンテンツを暗号化します。この場合、[鍵管理タイプ] で [Cloud KMS] を選択します。次に、Cloud KMS 鍵を選択します。
省略可: [ロギング] セクションで、[ロギングを有効にする] を選択し、次の操作を行います。
[サンプルレート] には、
0~1の値を指定します。値0は、ログメッセージが保存されないことを示します。デフォルト値1は、すべてのログメッセージが保存されることを示します。0.0~1.0の浮動小数点値は、ログ メッセージの割合が保存されることを示します。[最小ログレベル] で、Cloud Logging にエクスポートするプラグイン ログ メッセージの最小重大度レベルを選択します。デフォルト値は
Info and higherです。
[作成] をクリックします。
gcloud
gcloud service-extensions wasm-plugins createコマンドを実行して、プラグインを作成します。gcloud service-extensions wasm-plugins create WASM_PLUGIN \ --description=PLUGIN_DESCRIPTION \ --location=LOCATION \ --labels=[LABELS,...] \ --log-config=[LOG_CONFIG,...] \ --image=IMAGE \ --main-version=MAIN_VERSION \ --plugin-config=PLUGIN_CONFIG | --plugin-config-file=PLUGIN_CONFIG_FILE | --plugin-config-uri=PLUGIN_CONFIG_URI \ --kms-key-name=KEY_NAME次のように置き換えます。
WASM_PLUGIN: プラグインの ID または完全修飾名PLUGIN_DESCRIPTION: プラグインの説明LOCATION: プラグインのロケーション(globalまたはリージョン)LABELS: Key-Value ペアの形式のラベル(カンマ区切り)LOG_CONFIG: プラグインのロギング オプション。enableオプションがfalseに設定されている場合、プラグインのログはキャプチャされません。ロギングを有効にするには、enableオプションをtrueに設定します。次に、以下の詳細を指定します。sample-rate: アクティビティ ログのサンプリング レート。0~1の値。値0は、ログメッセージが保存されないことを示します。デフォルト値1は、すべてのログメッセージが保存されることを示します。0.0~1.0の浮動小数点値は、ログメッセージの割合が保存されることを示します。min-log-level: Cloud Logging にエクスポートされるプラグイン ログメッセージの最小重大度レベル。デフォルト値はINFOです。
IMAGE: Artifact Registry リポジトリに保存されている Wasm モジュールを含むアーティファクトの URI。別のプロジェクトのコンテナ イメージを指定する前に、Service Extensions がそのイメージにアクセスできることを確認してください。MAIN_VERSION: 作成してメイン(アクティブ)バージョンとして設定するプラグイン バージョンの ID。PLUGIN_CONFIG、PLUGIN_CONFIG_FILE、PLUGIN_CONFIG_URI: オプションの構成データ。それぞれ、テキスト、ローカル ファイル、Artifact Registry のコンテナ イメージとして指定できます。KEY_NAME: リージョン プラグインの場合、顧客管理の暗号鍵の完全修飾名(projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAMEの形式)。次のように置き換えます。
PROJECT: 鍵が含まれているプロジェクトの IDLOCATION: 鍵のロケーションKEYRING_NAME: キーリング名KEY_NAME: 鍵名
このオプションを指定しない場合、Google のデフォルトの暗号化メカニズムが使用されます。
次に例を示します。
gcloud service-extensions wasm-plugins create my-plugin \ --description="This is my plugin." \ --log-config=enable=true,sample-rate=0.5,min-log-level=INFO \ --labels=key1=value1,key2=value2 \ --image=...-docker.pkg.dev/my-project/repository/container:tag \ --main-version=v1 \ --plugin-config-file=config.txt新しいバージョンをデプロイするには、
gcloud service-extensions wasm-plugins updateコマンドを使用します。新しいイメージとバージョン名を指定します。gcloud service-extensions wasm-plugins update my-plugin \ --image=...-docker.pkg.dev/my-project/repository/container:tag \ --main-version=v2
これらのプラグインを実行するには、Cloud Load Balancing 拡張機能と Media CDN 拡張機能を構成します。
別のプロジェクトのイメージにアクセスする
別のプロジェクトからイメージを選択する前に、Service Extensions サービス エージェントにプロジェクト リポジトリへのアクセス権が必要です。また、Wasm モジュールのパッケージ化方法に応じて、プロジェクトに対する次のいずれかの権限が必要です。
- 汎用アーティファクトの場合:
artifactregistry.files.download - コンテナ イメージの場合:
artifactregistry.repositories.downloadArtifacts
Service Extensions サービス エージェントの名前は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com
PROJECT_NUMBER は、使用するプロジェクト番号に置き換えます。
次のステップ
- Cloud Load Balancing プラグインについては、サポートされているアプリケーション ロードバランサをご覧ください。
- プラグインを使用して、Cloud Load Balancing のエッジ拡張機能、ルート拡張機能、トラフィック拡張機能を構成する方法について説明します。
- Media CDN エッジ拡張機能を構成する方法を学習する。
- プラグインを管理する方法を学習する。
- Service Extensions の概要をご覧ください。