このページでは、Media CDN エッジ拡張機能(CdnEdgeExtension)を構成して、WebAssembly(Wasm)プラグインを Media CDN エッジ キャッシュ サービス(EdgeCacheService)に接続する方法について説明します。
CdnEdgeExtension リソースは EdgeCacheService デプロイに直接接続し、1 つ以上の順序付き拡張機能チェーン(extensionChains)を実行します。各拡張機能チェーンは、Common Expression Language(CEL)式を使用して照合され、最大 2 つのチェーンされた WasmPlugin リソースを含めることができます。
詳細については、Media CDN 拡張機能の概要をご覧ください。
始める前に
- Media CDN の送信元を作成する
- Media CDN サービスを作成する
CdnEdgeExtensionリソースを構成するときは、Media CDN エッジ拡張機能が、ルート マッチングやキャッシュ ルックアップなど、ほとんどの Media CDN 機能の前に実行されることを考慮してください。これにより、プラグインはヘッダーまたは URL を書き換えて HTTP ルーティングに影響を与えることができます。ただし、プラグイン コードは、Media CDN ルートルールが追加するカスタム ヘッダーや組み込み機能を検査できません。クライアント リージョン、IP アドレス、TLS パラメータなどのクライアント プロパティと接続プロパティにアクセスするには、転送属性を構成します。
Media CDN エッジ拡張機能を設定する
CdnEdgeExtension リソースを構成してプラグインを EdgeCacheService デプロイに接続するには、次の操作を行います。
YAML ファイルで
CdnEdgeExtensionリソースを定義します。次の例では、
media.example.comにリクエストを送信するときに、WASM_PLUGINを呼び出してリクエスト ヘッダーとレスポンス ヘッダーの両方を処理します。注:
failOpen: false設定は、プラグインが失敗するかタイムアウトすると、HTTP500エラーコードを返します。cat >cdn-edge-extension.yaml <<EOF edgeCacheServices: - projects/PROJECT_ID/locations/global/edgeCacheServices/SERVICE_NAME extensionChains: - name: "edge-plugin-chain" matchCondition: celExpression: 'request.host == "media.example.com"' extensions: - name: "auth-and-header-plugin" service: projects/PROJECT_ID/locations/global/wasmPlugins/WASM_PLUGIN failOpen: false supportedEvents: - REQUEST_HEADERS - RESPONSE_HEADERS forwardAttributes: - request.method - request.host - request.path - source.client_region EOF次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの IDSERVICE_NAME: ターゲットMedia CDNサービス(EdgeCacheService)の名前WASM_PLUGIN: プラグインの名前(例:my-wasm-plugin-resource)
YAML ファイルのフィールドの詳細については、API ドキュメントの ExtensionChain をご覧ください。
gcloud beta service-extensions cdn-edge-extensions importコマンドを使用してCdnEdgeExtensionリソースをインポートします。gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \ --source=cdn-edge-extension.yaml \ --location=global
注: 新しいプラグイン構成がすべてのロケーションに配布されるまでに時間がかかることがあります。
制限事項
EdgeCacheServiceデプロイに接続できるエッジ拡張機能は 1 つだけです。- エッジ拡張機能チェーンには、最大 2 つのプラグインを含めることができます。
- Media CDN エッジ拡張機能は、
REQUEST_HEADERSイベントとRESPONSE_HEADERSイベントをサポートしています。これらの拡張機能は、HTTP 本文またはトレーラーの処理をサポートしていません。 - Media CDN エッジ拡張機能では、CEL 式ごとに 1 つの正規表現のみを使用できます。
- 拡張機能チェーンと拡張機能の名前は RFC-1034 に準拠している必要があります。この仕様では、名前は最大 63 文字の英小文字またはハイフンで構成し、先頭は英字、末尾は英字または数字にする必要があります。
リソースの上限については、割り当てと上限をご覧ください。