Cette page explique comment configurer les extensions périphériques Media CDN (CdnEdgeExtension) pour associer des plug-ins WebAssembly (Wasm) aux services Edge Cache (EdgeCacheService) de Media CDN.
Une ressource CdnEdgeExtension est directement associée à un déploiement EdgeCacheService et exécute une ou plusieurs chaînes d'extensions ordonnées (extensionChains). Chaque chaîne d'extensions est mise en correspondance à l'aide d'expressions CEL (Common Expression Language) et peut contenir au maximum deux ressources WasmPlugin enchaînées.
Pour en savoir plus, consultez la présentation des extensions Media CDN.
Avant de commencer
- Créer une origine Media CDN
- Créer un service Media CDN
Lorsque vous configurez une ressource
CdnEdgeExtension, tenez compte du fait que les extensions périphériques Media CDN s'exécutent avant la plupart des fonctionnalités Media CDN, y compris la mise en correspondance des routes et la recherche dans le cache. Cela permet à un plug-in de réécrire des en-têtes ou des URL pour influencer le routage HTTP. Toutefois, le code du plug-in ne peut pas inspecter les en-têtes personnalisés ajoutés par les règles de routage Media CDN ou les fonctionnalités intégrées. Pour accéder aux propriétés du client et de la connexion, telles que la région du client, l'adresse IP ou les paramètres TLS, configurez les attributs de transfert.
Configurer l'extension en périphérie Media CDN
Pour configurer une ressource CdnEdgeExtension et associer des plug-ins à un déploiement EdgeCacheService, procédez comme suit :
Définissez la ressource
CdnEdgeExtensiondans un fichier YAML.L'exemple suivant appelle
WASM_PLUGINpour traiter les en-têtes de requête et de réponse lorsque vous envoyez une requête àmedia.example.com.Remarque : Le paramètre
failOpen: falserenvoie un code d'erreur HTTP500si le plug-in échoue ou expire.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 EOFRemplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google CloudSERVICE_NAME: nom du serviceMedia CDNcible (EdgeCacheService)WASM_PLUGIN: nom de votre plug-in, par exemplemy-wasm-plugin-resource
Pour en savoir plus sur les champs du fichier YAML, consultez ExtensionChain dans la documentation de l'API.
Utilisez la commande
gcloud beta service-extensions cdn-edge-extensions importpour importer la ressourceCdnEdgeExtension:gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \ --source=cdn-edge-extension.yaml \ --location=global
Remarque : La distribution de la nouvelle configuration du plug-in à tous les emplacements peut prendre un certain temps.
Limites
- Vous ne pouvez associer qu'une seule extension Edge à un déploiement
EdgeCacheService. - Une chaîne d'extensions Edge peut contenir jusqu'à deux plug-ins.
- Les extensions de périphérie Media CDN sont compatibles avec les événements
REQUEST_HEADERSetRESPONSE_HEADERS. Ces extensions ne sont pas compatibles avec le traitement du corps ou de la fin de la requête HTTP. - Les extensions de périphérie Media CDN ne vous permettent d'utiliser qu'une seule expression régulière pour chaque expression CEL.
- Les noms des chaînes d'extensions et des extensions doivent être conformes à la norme RFC-1034. Selon cette spécification, les noms peuvent contenir jusqu'à 63 caractères alphanumériques minuscules ou traits d'union, doivent commencer par une lettre et se terminer par une lettre ou un chiffre.
Pour en savoir plus sur les limites de ressources, consultez la page Quotas et limites.