設定 Media CDN 邊緣擴充功能

本頁面說明如何設定 Media CDN 邊緣擴充功能 (CdnEdgeExtension),將 WebAssembly (Wasm) 外掛程式附加至 Media CDN 邊緣快取服務 (EdgeCacheService)。

CdnEdgeExtension 資源會直接附加至 EdgeCacheService 部署作業,並執行一或多個已排序的擴充功能鏈結 (extensionChains)。每個擴充功能鏈結都會使用一般運算語言 (CEL) 運算式進行比對,且最多可包含兩個鏈結的 WasmPlugin 資源。

詳情請參閱「Media CDN 擴充功能總覽」。

事前準備

  1. 建立 Media CDN 來源
  2. 建立 Media CDN 服務
  3. 使用 Service Extensions 建立外掛程式

  4. 設定 CdnEdgeExtension 資源時,請注意 Media CDN 邊緣擴充功能會在大多數 Media CDN 功能之前執行,包括路徑比對和快取查詢。這樣一來,外掛程式就能重寫標頭或網址,影響 HTTP 轉送。不過,外掛程式程式碼無法檢查 Media CDN 路由規則新增的自訂標頭或內建功能。如要存取用戶端和連線屬性 (例如用戶端區域、IP 位址或 TLS 參數),請設定轉送屬性。

設定 Media CDN 邊緣擴充功能

如要設定 CdnEdgeExtension 資源,並將外掛程式附加至 EdgeCacheService 部署作業,請按照下列步驟操作:

  1. 在 YAML 檔案中定義 CdnEdgeExtension 資源。

    下列範例會叫用 WASM_PLUGIN,在您傳送要求至 media.example.com 時,同時處理要求和回應標頭。

    注意:如果外掛程式失敗或逾時,failOpen: false 設定會傳回 HTTP 500 錯誤代碼。

    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 專案 ID
    • SERVICE_NAME:目標 Media CDN 服務的名稱 (EdgeCacheService)
    • WASM_PLUGIN:外掛程式名稱,例如 my-wasm-plugin-resource

    如要進一步瞭解 YAML 檔案中的欄位,請參閱 API 說明文件中的「ExtensionChain」。

  2. 使用 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 部署作業只能附加一個邊緣擴充功能。
  • 邊緣擴充功能鏈最多可包含兩個外掛程式。
  • Media CDN 邊緣擴充功能支援 REQUEST_HEADERS 和 RESPONSE_HEADERS 事件。這些擴充功能不支援 HTTP 主體或結尾處理。
  • Media CDN 邊緣擴充功能只允許每個 CEL 運算式使用一個規則運算式。
  • 擴充功能鏈結和擴充功能的名稱必須符合 RFC-1034 規定。根據這項規格,名稱最多可包含 63 個小寫英數字元或連字號,開頭必須是英文字母,結尾必須是英文字母或數字。

如要進一步瞭解資源限制,請參閱「配額與限制」。

後續步驟