プラグインの作成

このページでは、 Google Cloud サービスで拡張機能を実装するために使用できる Service Extensions プラグインを作成する方法について説明します。

この機能は Media CDN のプレビュー版です。

プロダクトの概要については、Service Extensions の概要をご覧ください。

始める前に

  1. プラグインの作成に必要なファイルを準備してアップロードします。

  2. 必要な Identity and Access Management(IAM)のロールと権限を取得します。

  3. Network Services API がまだ有効になっていない場合は、有効にします。

    gcloud services enable networkservices.googleapis.com
    
  4. Media CDN プラグインでロギングを有効にする場合は、Network Actions API を有効にします。

    gcloud services enable networkactions.googleapis.com
    

プラグイン リソースを作成する

プラグイン リソースを作成するには、プラグイン コードを含むイメージを指定し、プラグインのラベルとロギング オプションを指定します。

コンソール

プラグインを作成する手順は次のとおりです。

  1. Google Cloud コンソールで、[サービス拡張機能] ページに移動します。

    サービス拡張機能に移動

  2. [プラグイン] タブをクリックします。

  3. [プラグインを作成] をクリックします。

  4. [基本] セクションで、次の操作を行います。

    1. [スコープ] で、[グローバル] または [リージョン] を選択します。

      スコープを [リージョン] に設定した場合は、リージョンも選択します。

    2. 一意のプラグイン名を入力します。

      名前は先頭を小文字にし、その後に 62 文字以下の小文字、数字、ハイフンを続けます。末尾をハイフンにすることはできません。

    3. 省略可: 最大 1,024 文字を使用して、プラグインに関する簡単な説明を入力します。

  5. [Wasm イメージ] セクションで、次の操作を行います。

    1. [Plugin version name] に、プラグイン バージョンの名前を指定します。

      名前は先頭を小文字にし、その後に 62 文字以下の小文字、数字、ハイフンを続けます。末尾をハイフンにすることはできません。

    2. 省略可: [プラグイン バージョンの説明] に、プラグイン バージョンの簡単な説明を 1, 024 文字以内で入力します。

    3. [イメージ URL] に、Artifact Registry ペインの Wasm モジュールを含む汎用アーティファクトまたはコンテナ イメージの URL を入力します。汎用リポジトリを使用するオプションはプレビュー版です。

      Docker リポジトリでコンテナ イメージを指定する場合は、[選択] をクリックして参照し、選択することもできます。[Artifact Registry] ペインに、現在のプロジェクトに接続されているリポジトリのフォルダが表示されます。

      別のプロジェクトからイメージを選択するには、Service Extensions がそのイメージにアクセスできることを確認してから、プロジェクト名の横にある [変更] をクリックします。

  6. 省略可: [プラグインの構成] セクションで、構成データをプラグインに関連付けるには、[プラグインの構成を追加] チェックボックスをオンにして、次のいずれかのオプションを選択します。

    • プラグイン構成ファイルをアップロードします。ファイルサイズが 900 KiB 未満でローカル ドライブにある場合は、[参照] をクリックしてファイルを探し、選択します。

    • Artifact Registry からプラグイン構成イメージまたはアーティファクトを選択します。[Artifact Registry] ペインで、Wasm モジュールを含む汎用アーティファクトまたはコンテナ イメージの URL を入力します。汎用リポジトリを使用するオプションはプレビュー版です。

      Docker リポジトリでコンテナ イメージを指定するには、[選択] をクリックして参照し、選択することもできます。[Artifact Registry] ペインに、現在のプロジェクトに接続されているリポジトリのフォルダが表示されます。

  7. 省略可: [ラベル] セクションで、[ラベルを追加] をクリックします。表示された行で、次の操作を行います。

    1. [キー] にキー名を入力します。
    2. [] にキーの値を入力します。

    最大 64 個の Key-Value ペアを追加できます。Key-Value ペアをさらに追加するには、[ラベルを追加] をクリックします。

    ラベルの詳細については、プロジェクトのラベルを作成、更新するをご覧ください。

  8. 省略可: [ロギング] セクションで、[ロギングを有効にする] を選択して、次の操作を行います。

    • [サンプルレート] には、01 の値を指定します。値 0 は、ログメッセージが保存されていないことを示します。デフォルト値 1 は、すべてのログメッセージが保存されることを示します。0.0 から 1.0 までの浮動小数点値は、ログメッセージの割合が保存されることを示します。

    • [最小ログレベル] で、Cloud Logging にエクスポートするプラグイン ログメッセージの最小重大度レベルを選択します。デフォルト値は Info and higher です。

  9. [作成] をクリックします。

gcloud

  1. 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
    

    次のように置き換えます。

    • WASM_PLUGIN: プラグインの ID または完全修飾名
    • PLUGIN_DESCRIPTION: プラグインの説明
    • LOCATION: プラグインのロケーション(global またはリージョン)
    • LABELS: カンマで区切られた Key-Value ペアの形式のラベル
    • LOG_CONFIG: プラグインのロギング オプション。enable オプションが false に設定されている場合、プラグインのログはキャプチャされません。ロギングを有効にするには、enable オプションを true に設定します。次に、次の詳細を指定します。

      • sample-rate: アクティビティ ログのサンプリング レート(01 の値)。値 0 は、ログメッセージが保存されないことを示します。デフォルト値の 1 は、すべてのログメッセージが保存されることを示します。0.01.0 の浮動小数点値は、ログ メッセージの割合が保存されていることを示します。

      • min-log-level: Cloud Logging にエクスポートするプラグイン ログ メッセージの最小重要度レベル。デフォルト値は INFO です。

    • IMAGE: Artifact Registry リポジトリに保存されている Wasm モジュールを含むアーティファクトの URI。別のプロジェクトのコンテナ イメージを指定する前に、Service Extensions がそのイメージにアクセスできることを確認してください

    • MAIN_VERSION: 作成してメイン(アクティブ)バージョンとして設定するプラグイン バージョンの ID

    • PLUGIN_CONFIGPLUGIN_CONFIG_FILEPLUGIN_CONFIG_URI: 省略可能な構成データ。それぞれ、テキスト、ローカルファイル、Artifact Registry のコンテナ イメージとして指定できます。

    次に例を示します。

    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 は、使用するプロジェクト番号に置き換えます。

次のステップ