Utiliser les remplacements et les paramètres TTL

Cette page explique l'utilisation des remplacements TTL avec Cloud CDN. Les remplacements TTL vous permettent de contrôler avec précision la durée pendant laquelle Cloud CDN met en cache votre contenu avant de le revalider.

Avant de commencer

  • Consultez la section concernant les modes de cache.

  • Assurez-vous que Cloud CDN est activé. Pour obtenir des instructions, consultez la page Utiliser Cloud CDN.

  • Si nécessaire, installez la dernière version du SDK Cloud :

    gcloud components update
    

Définir la valeur TTL par défaut

Lorsque vous définissez le mode cache pour mettre en cache l'ensemble du contenu statique (CACHE_ALL_STATIC) ou la totalité du contenu quel que soit son type (FORCE_CACHE_ALL), la valeur TTL (Time To Live) par défaut de la mise en cache du contenu est fixée à 3 600 secondes (une heure).

Pour améliorer les taux de succès de cache (hits) pour le contenu qui ne change pas souvent, vous pouvez remplacer la valeur TTL par défaut afin que Cloud CDN revalide moins fréquemment les contenus à l'origine. La valeur maximale autorisée pour la valeur TTL par défaut est de 31 622 400 secondes (un an). Les objets rarement utilisés peuvent être supprimés du cache avant la fin de la valeur TTL définie.

Définir une valeur TTL par défaut sur 0 signifie que la réponse est revalidée à l'origine lorsque la valeur TTL par défaut est appliquée.

Lorsque vous définissez le mode cache de sorte qu'il mette en cache tout le contenu indépendamment du type de contenu (FORCE_CACHE_ALL), la valeur TTL par défaut remplace la valeur TTL définie dans toutes les réponses (y compris celles dont la valeur TTL est définie par les en-têtes d'origine). Dans ce mode, la valeur TTL par défaut est visible par les clients, car Cloud CDN définit les attributs public et max-age des réponses diffusées aux clients.

En mode CACHE_ALL_STATIC, la valeur TTL par défaut s'applique au contenu mis en cache diffusé par une origine, pour les réponses qui n'ont pas de valeur TTL valide (en-tête max-age, s-max-age ou Expires). En mode CACHE_ALL_STATIC, la valeur TTL par défaut ne modifie pas l'en-tête Cache-Control diffusé aux clients. Pour modifier l'en-tête Cache-Control en mode CACHE_ALL_STATIC, vous devez définir la valeur TTL du client.

Lorsque vous définissez le mode cache pour utiliser des en-têtes d'origine (USE_ORIGIN_HEADERS), la valeur TTL par défaut ne s'applique pas et ne peut pas être définie, car Cloud CDN utilise à la place l'instruction d'origine max-age ou s-max-age, ou l'en-tête Expires.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le nom de votre équilibreur de charge HTTP(S) externe.
  3. Cliquez sur Modifier .
  4. Dans Configuration du backend, sélectionnez un backend, puis cliquez sur Modifier .
  5. Assurez-vous que l'option Activer Cloud CDN est sélectionnée.
  6. Assurez-vous que le mode de cache est défini sur Mettre en cache le contenu statique (recommandé) ou Forcer la mise en cache de tous les contenus. Le remplacement des valeurs TTL n'est pas disponible lorsque le mode de cache est défini sur Utiliser les paramètres d'origine basés sur les en-têtes Cache-Control.
  7. Sous Valeur TTL par défaut, saisissez une valeur.
  8. Cliquez sur Enregistrer.

gcloud

Pour les services de backend, exécutez la commande gcloud compute backend-services create ou gcloud compute backend-services update avec l'option --default-ttl.

Pour les buckets backend, exécutez la commande gcloud compute backend-buckets create ou gcloud compute backend-buckets update avec l'option --default-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --default-ttl=DEFAULT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --default-ttl=DEFAULT_TTL

Remplacez DEFAULT_TTL par une valeur allant jusqu'à 31 622 400 secondes (un an).

API

Pour les buckets backend, utilisez l'appel d'API Method: backendBuckets.insert ou Method: backendBuckets.update.

Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert ou Method: backendServices.update.

Utilisez l'un des appels d'API suivants :

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

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

"cdnPolicy": {
  "defaultTtl": DEFAULT_TTL
}

Remplacez DEFAULT_TTL par une valeur allant jusqu'à 31 622 400 secondes (un an).

Définir la valeur TTL maximale

La valeur TTL maximale (max) spécifie la valeur TTL maximale autorisée dans Cloud CDN pour le contenu mis en cache diffusé par une origine.

La valeur TTL d'une réponse est limitée par la valeur TTL maximale si l'une des conditions suivantes est remplie :

  • La réponse tente de définir une valeur max-age ou s-maxage supérieure à la valeur TTL maximale.
  • La réponse comporte un en-tête Expires correspondant à plus de cdnPolicy.maxTtl secondes dans le futur.

Le paramètre TTL maximal ne modifie pas la valeur max-age envoyée au client. Pour en savoir plus, consultez la section Remplacer la valeur TTL maximale du client. Le paramètre TTL maximal n'affecte que la durée pendant laquelle Cloud CDN tente de mettre en cache le contenu.

Lorsque vous définissez le mode cache pour mettre en cache tout le contenu statique (CACHE_ALL_STATIC), la valeur TTL maximale par défaut de la mise en cache du contenu est définie sur 86 400 secondes (un jour). La valeur maximale autorisée est de 31 622 400 secondes (un an). Toutefois, les objets rarement utilisés peuvent être supprimés du cache avant la fin de la valeur TTL définie.

Avec FORCE_CACHE_ALL, la valeur TTL est toujours définie sur la valeur TTL par défaut. Vous ne pouvez pas définir de valeur TTL maximale.

La valeur TTL maximale peut être supérieure ou égale à la valeur TTL par défaut.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le nom de votre équilibreur de charge HTTP(S) externe.
  3. Cliquez sur Modifier .
  4. Dans Configuration du backend, sélectionnez un backend, puis cliquez sur Modifier .
  5. Assurez-vous que l'option Activer Cloud CDN est sélectionnée.
  6. Assurez-vous que le mode de cache est défini sur Mettre en cache le contenu statique (recommandé).
  7. Sous Valeur TTL maximale, sélectionnez une valeur.
  8. Cliquez sur Enregistrer.

gcloud

Pour les services de backend, exécutez la commande gcloud compute backend-services create ou gcloud compute backend-services update avec l'option --max-ttl.

Pour les buckets backend, exécutez la commande gcloud compute backend-buckets create ou gcloud compute backend-buckets update avec l'option --max-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --max-ttl=MAX_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --max-ttl=MAX_TTL

Remplacez MAX_TTL par une valeur allant jusqu'à 31 622 400 secondes (un an).

API

Pour les buckets backend, utilisez l'appel d'API Method: backendBuckets.insert ou Method: backendBuckets.update.

Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert ou Method: backendServices.update.

Utilisez l'un des appels d'API suivants :

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

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

"cdnPolicy": {
  "maxTtl": MAX_TTL
}

Remplacez MAX_TTL par une valeur allant jusqu'à 31 622 400 secondes (un an).

Remplacer la valeur TTL du client

Pour tous les modes cache, Cloud CDN transmet les en-têtes Cache-Control au client.

La valeur TTL client vous permet de définir une valeur TTL maximale pour les navigateurs ou les clients afin que ces clients puissent revalider le contenu avec Cloud CDN de manière plus régulière, sans aucune revalidation nécessaire à l'origine. Ainsi, le contenu peut être invalidé dans Cloud CDN si nécessaire, et les navigateurs peuvent détecter que le contenu n'est plus valide dès l'expiration du délai TTL client.

En mode FORCE_CACHE_ALL, Cloud CDN transmet normalement la même valeur max-age au client qu'il utilise en interne pour la mise en cache du proxy. Toutefois, en cas de valeur TTL client spécifiée inférieure, celle-ci est transmise au client dans l'instruction max-age. De même, en mode CACHE_ALL_STATIC, la valeur TTL client sert à bloquer toute valeur maximale max-age spécifiée par le serveur d'origine, de sorte que la valeur max-age envoyée au navigateur ou au client ne soit pas supérieure à la valeur TTL client configurée. Si aucune valeur max-age n'est spécifiée, la valeur la plus faible de la valeur TTL par défaut et de la valeur TTL client est utilisée comme max-age envoyé au navigateur ou au client.

La valeur TTL client ne peut pas être supérieure à la valeur TTL maximale.

Si un en-tête Expires est présent dans la réponse d'origine, il est supprimé et remplacé par une instruction Cache-Control: max-age avec la valeur TTL appropriée.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le nom de votre équilibreur de charge HTTP(S) externe.
  3. Cliquez sur Modifier .
  4. Dans Configuration du backend, sélectionnez un backend, puis cliquez sur Modifier .
  5. Assurez-vous que l'option Activer Cloud CDN est sélectionnée.
  6. Assurez-vous que le mode de cache est défini sur Mettre en cache le contenu statique (recommandé) ou Forcer la mise en cache de tous les contenus. Le remplacement des valeurs TTL n'est pas disponible lorsque le mode de cache est défini sur Utiliser les paramètres d'origine basés sur les en-têtes Cache-Control.
  7. Sous Valeur TTL client, sélectionnez une valeur inférieure ou égale à 86 400 secondes.
  8. Cliquez sur Enregistrer.

gcloud

Pour les services de backend, exécutez la commande gcloud compute backend-services create ou gcloud compute backend-services update avec l'option --client-ttl.

Pour les buckets backend, exécutez la commande gcloud compute backend-buckets create ou gcloud compute backend-buckets update avec l'option --client-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --client-ttl=CLIENT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --client-ttl=CLIENT_TTL

Remplacez CLIENT_TTL par une valeur allant jusqu'à 86 400 secondes (un jour).

API

Pour les buckets backend, utilisez l'appel d'API Method: backendBuckets.insert ou Method: backendBuckets.update.

Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert ou Method: backendServices.update.

Utilisez l'un des appels d'API suivants :

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

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

"cdnPolicy": {
  "clientTtl": CLIENT_TTL
}

Remplacez CLIENT_TTL par une valeur allant jusqu'à 86 400 secondes (un jour).