Présentation des extensions Media CDN

Service Extensions vous permet d'utiliser des extensions pour insérer du code personnalisé dans le chemin de traitement de Media CDN. Cette page présente les extensions Media CDN.

Media CDN fournit de nombreuses fonctionnalités de base intégrées pour répondre aux cas d'utilisation les plus courants des réseaux de diffusion de contenu (CDN). Vos exigences peuvent aller au-delà de ces fonctionnalités. Par exemple, vous devrez peut-être normaliser les en-têtes pour améliorer la mise en cache, utiliser un algorithme de signature d'URL personnalisé ou transférer un ancien comportement d'un CDN existant vers Media CDN.

Vous pouvez utiliser des extensions de périphérie (CdnEdgeExtension) pour exécuter des plug-ins WebAssembly (Wasm) directement sur le réseau périphérique de Google devant le cache dans le chemin de traitement Media CDN.

Une ressource CdnEdgeExtension est directement associée à un déploiement EdgeCacheService et exécute une ou plusieurs chaînes d'extension ordonnées (extensionChains). Chaque chaîne d'extension définit des conditions de correspondance CEL (Common Expression Language) (matchCondition.celExpression) pour évaluer de manière sélective les requêtes en fonction des noms d'hôte, des chemins d'URL, des paramètres de requête ou des en-têtes de requête HTTP.

Les plug-ins peuvent accéder aux en-têtes de requête et de réponse HTTP, et les manipuler. Ils peuvent aussi influencer la génération de clés de cache, valider des jetons d'autorisation personnalisés ou des signatures d'URL, et diffuser des réponses synthétiques. Pour en savoir plus, consultez la figure 1.

Les extensions Media CDN en périphérie utilisent des plug-ins pour ajouter du code personnalisé au chemin de traitement.
Figure 1. Les extensions de périphérie Media CDN utilisent des plug-ins pour ajouter du code personnalisé au chemin de traitement (cliquez pour agrandir).

Fonctionnement des extensions Media CDN en périphérie

Lorsqu'une requête client atteint un EdgeCacheService étendu par une extension périphérique, l'extension s'exécute dans l'ordre suivant :

  1. Évaluation de la condition de correspondance : Media CDN extrait les attributs de la requête et évalue les extensionChains ordonnés définis dans CdnEdgeExtension. La première chaîne dont l'expression CEL renvoie true est exécutée, et toutes les chaînes suivantes sont ignorées.

  2. Traitement des en-têtes de requête du plug-in (REQUEST_HEADERS) : les plug-ins que vous avez configurés s'exécutent de manière séquentielle. Vous pouvez associer jusqu'à deux plug-ins dans une même chaîne d'extensions. Les plug-ins peuvent inspecter les en-têtes HTTP et les attributs Envoy transférés, ajouter ou réécrire des en-têtes de requête, ou renvoyer une réponse synthétique directe au client.

  3. Correspondance des routes et sélection de l'origine : Media CDN évalue les règles de routage, puis sélectionne l'origine cible en fonction de la requête, y compris les en-têtes de requête ou les chemins d'URL modifiés par les plug-ins.

  4. Recherche dans le cache et récupération de l'origine : Media CDN évalue les clés de cache (qui peuvent intégrer des en-têtes de requête ou des chemins d'URL modifiés par les plug-ins), vérifie le stockage du cache périphérique et diffuse le contenu lorsqusuccès de cache (hit) se produit ou récupère le contenu de l'origine sélectionnée lorsqu'un défaut de cache (miss) se produit.

  5. Traitement des en-têtes de réponse du plug-in (RESPONSE_HEADERS) : une fois le contenu récupéré à partir du cache ou de l'origine, les plug-ins configurés s'exécutent de manière séquentielle. Ensuite, les en-têtes de réponse modifiés sont transmis au client en aval.

  6. Livraison au client : les en-têtes et le corps de la réponse finale sont envoyés au client.

Étapes suivantes