このページでは、 サービスで拡張機能を実装するために使用できる Service Extensions プラグインを作成する方法について説明します。 Google Cloud
この機能は、Media CDN のプレビュー版です。
プロダクトの概要については、 Service Extensions の概要をご覧ください。
始める前に
プラグインの作成に必要なファイルを 準備してアップロードします。
Network Services API が有効になっていない場合は有効にします。
gcloud services enable networkservices.googleapis.com
Media CDN プラグインでロギングを有効にする場合は、Network Actions API を有効にします。
gcloud services enable networkactions.googleapis.com
プラグイン リソースを作成する
プラグイン リソースを作成するには、プラグイン コードを含むイメージを指定し、プラグインのラベルとロギング オプションを指定します。
コンソール
プラグインを作成する手順は次のとおりです。
コンソールで、[Service Extensions] ページに移動します。 Google Cloud
[プラグイン] タブをクリックします。
[プラグインを作成] をクリックします。
[基本] セクションで、次の操作を行います。
[**スコープ**] で、[**グローバル**] または [**リージョン**] を選択します。
スコープを [リージョン] に設定した場合は、リージョンも選択します。
一意のプラグイン名を入力します。
名前は英小文字で開始し、最大 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 のコンテナ イメージ として指定できます。-
次のように置き換えます。
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 の概要を確認する。