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
- Crea un'origine Media CDN
- Crea un servizio Media CDN
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:
Definisci la risorsa
CdnEdgeExtensionin un file YAML.L'esempio seguente richiama
WASM_PLUGINper elaborare le intestazioni della richiesta e della risposta quando invii una richiesta amedia.example.com.Nota: l'impostazione
failOpen: falserestituisce un codice di errore HTTP500se 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 EOFSostituisci quanto segue:
PROJECT_ID: l'ID del tuo progetto Google CloudSERVICE_NAME: il nome del servizioMedia CDNdi destinazione (EdgeCacheService)WASM_PLUGIN: il nome del plug-in, ad esempiomy-wasm-plugin-resource
Per ulteriori informazioni sui campi nel file YAML, consulta ExtensionChain nella documentazione dell'API.
Utilizza il comando
gcloud beta service-extensions cdn-edge-extensions importper importare la risorsaCdnEdgeExtension: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_HEADERSeRESPONSE_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.