Personnaliser des clés de cache

Cette page explique comment personnaliser les clés de cache Cloud CDN.

La modification de la configuration des clés de cache peut entraîner une chute soudaine du taux d'accès au cache si les nouvelles demandes commencent à utiliser des clés de cache différentes des anciennes entrées. De même, le changement de créateur de clé de cache n'invalide pas nécessairement les entrées de cache si les nouvelles demandes utilisent la même clé que l'ancienne. Pour invalider des entrées de cache existantes, consultez la page Invalider un contenu mis en cache.

Avant de commencer

Cette page part du principe que vous comprenez le fonctionnement de Cloud CDN, des clés de cache Cloud CDN et des services de backend à équilibrage de charge. Nous vous recommandons de consulter ces pages avant de continuer.

Activer Cloud CDN et personnaliser les clés de cache

Les instructions suivantes permettent d'activer Cloud CDN pour un service de backend à charge équilibrée et de personnaliser la clé de cache. Si vous ne disposez pas déjà d'un équilibreur de charge à utiliser comme origine, consultez la documentation sur l'équilibreur de charge d'application externe pour savoir comment le créer.

Les buckets backend n'incluent pas le protocole ni l'hôte dans la clé de cache, car ils n'influencent pas la façon dont les objets sont référencés au sein d'un bucket Cloud Storage. Toutefois, elles incluent un ensemble de paramètres de chaîne de requête spécifiques à Cloud Storage, qui peuvent affecter la réponse et être étendus par une liste personnalisable de noms de paramètres.

Console

  1. Dans la console Google Cloud , accédez à la page Cloud CDN.

    Accéder à Cloud CDN

  2. Cliquez sur le nom de l'origine que vous souhaitez modifier.

  3. Cliquez sur Modifier.

    Si plusieurs équilibreurs de charge sont associés à l'origine, sélectionnez celui que vous souhaitez mettre à jour dans le menu Modifier.

  4. Pour développer la section Performances du cache, cliquez sur Suivant.

  5. Pour Clé de cache, sélectionnez Personnalisé.

  6. Dans la section Mettre en cache les composants clés, tous les composants sont sélectionnés par défaut. Décochez les cases correspondant aux composants que vous souhaitez exclure de la clé de cache.

  7. Cliquez sur OK.

gcloud

Pour exclure un ou plusieurs composants des clés de cache d'un service de backend, utilisez la commande gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --no-cache-key-include-protocol \
    --no-cache-key-include-host \
    --no-cache-key-include-query-string

Pour les buckets backend, exécutez la commande gcloud compute backend-buckets update.

API

Pour exclure un ou plusieurs composants de la clé de cache, spécifiez des options de configuration dans la section cacheKeyPolicy de cdnPolicy pour la ressource backendServices.

Pour les services de backend, utilisez l'appel d'API méthode backendServices.update.

PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Pour les buckets de backend, utilisez l'appel d'API méthode backendBuckets.update.

PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET

Ajoutez l'extrait suivant au corps de la requête JSON :

"cdnPolicy": {
  "cacheKeyPolicy": [
    {
      "includeProtocol": false,
      "includeHost": false,
      "includeQueryString": false
    }
  ]
}

Mettre à jour les clés de cache pour ajouter le protocole, l'hôte et la chaîne de requête

Par défaut, les services de backend configurés pour utiliser Cloud CDN incluent tous les composants de l'URI de requête dans des clés de cache. Si vous avez précédemment indiqué qu'un ou plusieurs composants devaient être exclus, vous pouvez suivre la procédure ci-dessous pour les inclure de nouveau.

Ces instructions ajoutent le protocole, l'hôte et la chaîne de requête à la clé de cache d'un service de backend existant sur lequel Cloud CDN est déjà activé.

Console

  1. Dans la console Google Cloud , accédez à la page Cloud CDN.

    Accéder à Cloud CDN

  2. Cliquez sur le nom de l'origine que vous souhaitez modifier.

  3. Cliquez sur Modifier.

    Si plusieurs équilibreurs de charge sont associés à l'origine, sélectionnez celui que vous souhaitez mettre à jour dans le menu Modifier.

  4. Pour développer la section Performances du cache, cliquez sur Suivant.

  5. Pour Clé de cache, sélectionnez Personnalisé.

  6. Dans la section Composants de clé de cache, cochez les cases Protocole, Hôte et Chaîne de requête.

  7. Cliquez sur OK.

gcloud

Pour ajouter un ou plusieurs composants aux clés de cache d'un service de backend, exécutez la commande gcloud compute backend-services update.

Tout indicateur non spécifié reste inchangé.

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-protocol \
    --cache-key-include-host \
    --cache-key-include-query-string

API

Pour ajouter un ou plusieurs composants à la clé de cache, spécifiez des options de configuration dans la section cacheKeyPolicy de cdnPolicy pour la ressource backendServices.

Ajoutez l'extrait suivant au corps de la requête JSON :

"cdnPolicy": {
  "cacheKeyPolicy": [
    {
      "includeProtocol": true,
      "includeHost": true,
      "includeQueryString": true
    }
  ]
}

Mettre à jour les clés de cache pour utiliser une liste d'inclusion ou d'exclusion de paramètres de chaîne de requête

Ces instructions définissent des clés de cache Cloud CDN pour utiliser une liste d'inclusion ou d'exclusion avec des paramètres de chaîne de requête.

Console

  1. Dans la console Google Cloud , accédez à la page Cloud CDN.

    Accéder à Cloud CDN

  2. Cliquez sur le nom de l'origine que vous souhaitez modifier.

  3. Cliquez sur Modifier.

    Si plusieurs équilibreurs de charge sont associés à l'origine, sélectionnez celui que vous souhaitez mettre à jour dans le menu Modifier.

  4. Pour développer la section Performances du cache, cliquez sur Suivant.

  5. Pour Clé de cache, sélectionnez Personnalisé.

  6. Dans la section Composants de clé de cache, cochez la case Chaîne de requête. Sélectionnez ensuite l'une des options suivantes:

    • Si vous souhaitez spécifier des paramètres de chaîne de requête devant faire partie de la clé de cache, sélectionnez Inclure uniquement les paramètres sélectionnés.

    • Si vous souhaitez spécifier que tous les paramètres de chaîne de requête, à l'exception de ceux que vous répertoriez, sont inclus dans la clé de cache, sélectionnez Inclure tous les paramètres, sauf ceux sélectionnés.

  7. Cliquez sur Ajouter un paramètre et spécifiez les paramètres.

  8. Cliquez sur OK.

gcloud

Pour spécifier une liste d'inclusion ou d'exclusion pour un service de backend, spécifiez les paramètres de chaîne de requête à l'aide de la commande gcloud compute backend-services update.

Utilisez cette commande pour définir le paramètre de chaîne de requête user sur la liste d'inclusion d'un service de backend.

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-query-string \
    --cache-key-query-string-whitelist user

Utilisez cette commande pour définir le paramètre de chaîne de requête user sur la liste d'exclusion d'un service de backend.

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-query-string \
    --cache-key-query-string-blacklist user

Utilisez cette commande pour définir le paramètre de chaîne de requête user sur la liste d'inclusion d'un bucket backend.

gcloud compute backend-buckets update BACKEND_BUCKET \
    --cache-key-query-string-whitelist user

API

Pour spécifier une liste d'inclusion ou d'exclusion pour un service de backend, spécifiez les paramètres de chaîne de requête dans la section cacheKeyPolicy de cdnPolicy pour la ressource backendServices.

Pour spécifier une liste d'inclusion, ajoutez l'extrait suivant au corps de la requête JSON:

"cdnPolicy": {
  "cacheKeyPolicy": [
    {
      "queryStringWhitelist": [QUERY_STRINGS]
    }
  ]
}

Remplacez QUERY_STRINGS par une liste de paramètres de chaîne de requête séparés par des virgules.

Pour spécifier une liste d'exclusion, ajoutez l'extrait suivant:

"cdnPolicy": {
  "cacheKeyPolicy": [
    {
      "queryStringBlacklist": [QUERY_STRINGS]
    }
  ]
}

Mettre à jour des clés de cache pour utiliser des en-têtes HTTP

Ces instructions définissent les clés de cache Cloud CDN pour utiliser des en-têtes HTTP, qui peuvent inclure des variables personnalisées autorisées.

Console

  1. Dans la console Google Cloud , accédez à la page Cloud CDN.

    Accéder à Cloud CDN

  2. Cliquez sur le nom de l'origine que vous souhaitez modifier.

  3. Cliquez sur Modifier.

    Si plusieurs équilibreurs de charge sont associés à l'origine, sélectionnez celui que vous souhaitez mettre à jour dans le menu Modifier.

  4. Pour développer la section Performances du cache, cliquez sur Suivant.

  5. Pour Clé de cache, sélectionnez Personnalisé.

  6. Dans la section Composants clés de la mise en cache, cochez la case En-têtes HTTP.

  7. Pour spécifier un ou plusieurs en-têtes HTTP, cliquez sur Ajouter un en-tête HTTP.

  8. Cliquez sur OK.

gcloud

Exécutez la commande gcloud compute backend-services update avec l'option cache-key-include-http-header.

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-http-header=[HEADER_FIELD_NAMES,...]

Remplacez HEADER_FIELD_NAMES par une liste de noms d'en-tête séparés par une virgule.

API

Spécifiez les en-têtes HTTP pour les clés de cache dans la section cacheKeyPolicy de cdnPolicy pour la ressource backendServices.

Ajoutez l'extrait suivant au corps de la requête JSON :

"cdnPolicy": {
  "cacheKeyPolicy": [
    {
      "includeHttpHeaders": [HEADER_FIELD_NAMES]
    }
  ]
}

Remplacez HEADER_FIELD_NAMES par une liste de noms d'en-tête séparés par une virgule.

Si l'en-tête de clé de cache spécifié est également spécifié en tant qu'en-tête de requête personnalisé, vous ne pouvez pas utiliser la gamme complète de variables.

Pour en savoir plus, consultez la section Utiliser des variables personnalisées avec des en-têtes de requête.

Mettre à jour des clés de cache pour utiliser des cookies nommés

Les instructions ci-après définissent les clés de cache Cloud CDN permettant d'utiliser des cookies HTTP.

Console

  1. Dans la console Google Cloud , accédez à la page Cloud CDN.

    Accéder à Cloud CDN

  2. Cliquez sur le nom de l'origine que vous souhaitez modifier.

  3. Cliquez sur Modifier.

    Si plusieurs équilibreurs de charge sont associés à l'origine, sélectionnez celui que vous souhaitez mettre à jour dans le menu Modifier.

  4. Pour développer la section Performances du cache, cliquez sur Suivant.

  5. Pour Clé de cache, sélectionnez Personnalisé.

  6. Dans la section Composants de clé de cache, cochez la case Cookies nommés.

  7. Pour spécifier un ou plusieurs cookies, cliquez sur Ajouter un cookie nommé.

  8. Cliquez sur OK.

gcloud

Exécutez la commande gcloud compute backend-services update avec l'option cache-key-include-named-cookie.

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-named-cookie=[NAMED_COOKIES,...]

Remplacez NAMED_COOKIES par une liste de cookies nommés séparés par une virgule.

API

Pour spécifier une liste d'inclusion ou d'exclusion pour un service de backend, spécifiez les paramètres de chaîne de requête dans la section cacheKeyPolicy de cdnPolicy pour la ressource backendServices.

Pour spécifier une liste d'inclusion, ajoutez l'extrait suivant au corps de la requête JSON:

"cdnPolicy": {
  "cacheKeyPolicy": [
    {
      "includeNamedCookies": [NAMED_COOKIES]
    }
  ]
}

Remplacez NAMED_COOKIES par une liste de paramètres de chaîne de requête séparés par des virgules.

Étape suivante