プラグインの作成

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

この機能は、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. コンソールで、[Service Extensions] ページに移動します。 Google Cloud

    Service Extensions に移動

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

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

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

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

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

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

      名前は英小文字で開始し、最大 62 文字の英小文字、数字、ハイフンで構成します。ハイフンで終了することはできません。

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

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

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

      名前は英小文字で開始し、最大 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. [暗号化] セクションで、プラグインの暗号化メカニズムを選択します。このオプションは、リージョン プラグインでのみ使用できます。

    • [Google が管理する暗号鍵]。Google のデフォルトの暗号化メカニズムを使用してプラグイン コンテンツを暗号化します
    • [Cloud KMS 鍵]。Cloud Key Management Service を使用して作成された 顧客管理の暗号鍵 でプラグイン コンテンツを暗号化します。この場合、 [鍵管理タイプ] で [Cloud KMS] を選択します。次に、Cloud KMS 鍵を選択します。
  9. 省略可: [ロギング] セクションで [ロギングを有効にする] を選択し、次の操作を行います。

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

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

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

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 \
        --kms-key-name=KEY_NAME
    

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

    • 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_FILE、 または PLUGIN_CONFIG_URI:省略可能な構成データ。テキスト、ローカル ファイル、Artifact Registry のコンテナ イメージ として指定できます。

    • KEY_NAME: リージョン プラグインの場合、顧客管理の暗号鍵の完全修飾名(projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME の形式)。

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

      • PROJECT: 鍵が含まれているプロジェクトの ID
      • LOCATION: 鍵のロケーション
      • 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 は、使用する プロジェクト番号 に置き換えます。

次のステップ