Configura un'estensione edge Media CDN

Questa pagina descrive come configurare le estensioni perimetrali di Media CDN (CdnEdgeExtension) per collegare i plug-in WebAssembly (Wasm) ai servizi Edge Cache di Media CDN (EdgeCacheService).

Una risorsa CdnEdgeExtension si collega direttamente a un deployment EdgeCacheService ed esegue una o più catene di estensioni ordinate (extensionChains). Ogni catena di estensioni viene abbinata utilizzando espressioni Common Expression Language (CEL) e può contenere un massimo di due risorse WasmPlugin concatenate.

Per saperne di più, consulta Panoramica delle estensioni di Media CDN.

Prima di iniziare

  1. Crea un'origine Media CDN
  2. Crea un servizio Media CDN
  3. Crea un plug-in utilizzando Service Extensions

  4. Quando configuri una risorsa CdnEdgeExtension, tieni presente che le estensioni perimetrali di Media CDN vengono eseguite prima della maggior parte delle funzionalità di Media CDN, tra cui la corrispondenza delle route e la ricerca nella cache. In questo modo, un plug-in può riscrivere intestazioni o URL per influenzare il routing HTTP. Tuttavia, il codice del plug-in non può ispezionare le intestazioni personalizzate aggiunte dalle regole di instradamento di Media CDN o dalle funzionalità integrate. Per accedere alle proprietà del client e della connessione, come la regione del client, l'indirizzo IP o i parametri TLS, configura gli attributi di inoltro.

Configura l'estensione perimetrale Media CDN

Per configurare una risorsa CdnEdgeExtension e collegare i plug-in a un deployment EdgeCacheService, segui questi passaggi:

  1. Definisci la risorsa CdnEdgeExtension in un file YAML.

    L'esempio seguente richiama WASM_PLUGIN per elaborare le intestazioni della richiesta e della risposta quando invii una richiesta a media.example.com.

    Nota: l'impostazione failOpen: false restituisce un codice di errore HTTP 500 se il plug-in non riesce o scade.

    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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • SERVICE_NAME: il nome del servizio Media CDN di destinazione (EdgeCacheService)
    • WASM_PLUGIN: il nome del plug-in, ad esempio my-wasm-plugin-resource

    Per ulteriori informazioni sui campi nel file YAML, consulta ExtensionChain nella documentazione dell'API.

  2. Utilizza il comando gcloud beta service-extensions cdn-edge-extensions import per importare la risorsa CdnEdgeExtension:

    gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \
       --source=cdn-edge-extension.yaml \
       --location=global
    

    Nota: potrebbe essere necessario un po' di tempo prima che la nuova configurazione del plug-in venga distribuita in tutte le località.

Limitazioni

  • Puoi collegare una sola estensione perimetrale a un deployment EdgeCacheService.
  • Una catena di estensioni perimetrali può contenere un massimo di due plug-in.
  • Le estensioni perimetrali di Media CDN supportano gli eventi REQUEST_HEADERS e RESPONSE_HEADERS. Queste estensioni non supportano l'elaborazione del corpo o del trailer HTTP.
  • Le estensioni perimetrali di Media CDN consentono di utilizzare una sola espressione regolare per ogni espressione CEL.
  • I nomi delle catene di estensioni e delle estensioni devono essere conformi a RFC-1034. In base a questa specifica, i nomi possono contenere fino a 63 caratteri alfanumerici minuscoli o trattini, devono iniziare con una lettera e terminare con una lettera o un numero.

Per saperne di più sui limiti delle risorse, consulta Quote e limiti.

Passaggi successivi