Configurer une extension en périphérie Media CDN

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

  1. Créer une origine Media CDN
  2. Créer un service Media CDN
  3. Créer un plug-in à l'aide de Service Extensions

  4. 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 :

  1. Définissez la ressource CdnEdgeExtension dans un fichier YAML.

    L'exemple suivant appelle WASM_PLUGIN pour 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: false renvoie un code d'erreur HTTP 500 si 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
    EOF
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • SERVICE_NAME : nom du service Media CDN cible (EdgeCacheService)
    • WASM_PLUGIN : nom de votre plug-in, par exemple my-wasm-plugin-resource

    Pour en savoir plus sur les champs du fichier YAML, consultez ExtensionChain dans la documentation de l'API.

  2. Utilisez la commande gcloud beta service-extensions cdn-edge-extensions import pour importer la ressource CdnEdgeExtension :

    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_HEADERS et RESPONSE_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.

Étapes suivantes