Présentation de l'invalidation de cache

Cette page présente l'invalidation de cache Cloud CDN.

Qu'est-ce qu'une invalidation de cache ?

Une fois qu'un objet est mis en cache, il reste normalement dans le cache jusqu'à son expiration ou sa suppression pour laisser la place à un nouveau contenu. Vous contrôlez le délai d'expiration à l'aide d'en-têtes HTTP standards.

Vous pouvez vouloir supprimer un objet du cache avant son délai d'expiration normal. Vous pouvez forcer le cache à ignorer un objet ou un ensemble d'objets en demandant une invalidation de cache.

Il est important de vous assurer que le serveur d'origine renvoie le bon contenu avant de demander l'invalidation de cache. Sinon, lorsque Cloud CDN redemande le contenu, il peut mettre en cache le mauvais contenu.

Formats de chemin

Chaque demande d'invalidation spécifie un format de chemin identifiant l'objet ou l'ensemble d'objets à invalider. Le format de chemin d'accès peut être un chemin spécifique, tel que /cat.jpg, ou une structure de répertoires complète, telle que /pictures/*. Les règles suivantes s'appliquent aux formats de chemin :

  • Le format de chemin doit commencer par /.
  • Il ne peut pas inclure ? ni #.
  • Il ne doit pas inclure d'astérisque *, sauf comme caractère final après une barre oblique /.
  • S'il se termine par /*, la chaîne qui précède est un préfixe et tous les objets dont le chemin commence par ce préfixe sont invalidés.

Le format de chemin s'apparente au composant de chemin de l'URL, correspondant aux éléments placés entre le nom d'hôte et tout caractère ? ou # éventuellement présent.

Si des URL contiennent une chaîne de requête telle que /images.php?image=fred.png, vous ne pouvez pas invalider de manière sélective des objets qui diffèrent uniquement par cette chaîne de requête. Par exemple, si vous disposez de deux images, /images.php?image=fred.png et /images.php?image=barney.png, vous ne pouvez pas invalider uniquement fred.png. Pour invalider toutes les images diffusées par images.php, utilisez /images.php comme format de chemin.

Invalider le cache pour un seul hôte

Normalement, l'invalidation de cache invalide le chemin pour tous les noms d'hôte. Par exemple, si example.com et example2.com pointent vers le même équilibreur de charge et que vous invalidez /images/cat.jpg, example.com/images/cat.jpg et example2.com/images/cat.jpg sont tous deux invalidés.

Vous pouvez limiter l'invalidation à un seul hôte en ajoutant l'option --host à la commande.

Limites

L'invalidation est destinée à être utilisée dans des circonstances exceptionnelles et non dans le cadre de votre flux de travail normal. Les invalidations sont sans incidence sur les copies stockées dans les caches de navigateur Web ou dans les caches exploités par des fournisseurs de services Internet tiers.

À titre d'alternative aux invalidations de routine, vous pouvez définir de manière proactive des délais d'expiration appropriés pour les réponses ou employer des URL distinctes pour les différentes versions du contenu. Pour en savoir plus sur les délais d'expiration, consultez la section Délais d'expiration et requêtes de validation.

Les invalidations ont un débit limité. Vous pouvez soumettre au plus une invalidation par minute. Cependant, une invalidation peut être de toute taille. L'invalidation de /images/fred.png compte comme une seule invalidation. L'invalidation de /images/* est également considérée comme une seule invalidation.

N'effectuez une invalidation que si cela est indispensable : un nombre excessif d'invalidations peut provoquer un important pic de demandes diffusées par les caches et entraîner un impact soudain sur les instances ou les buckets.

Cloud CDN étant un système distribué, il peut signaler qu'une invalidation est terminée même si un petit nombre de caches n'ont pas encore traité la demande d'invalidation. Cette situation est extrêmement rare et se corrigera automatiquement.

Demander l'invalidation du cache avec la référence de service inter-projets du VPC partagé

Lorsque vous utilisez un équilibreur de charge d'application externe global avec une référence de service inter-projets de VPC partagé, par défaut, les administrateurs de projet de service ne disposent pas des autorisations requises pour invalider un cache. En effet, l'invalidation de cache est configurée dans le projet d'interface (c'est-à-dire le projet contenant la règle de transfert, le proxy cible et le mappage d'URL de l'équilibreur de charge). Ainsi, les invalidations de cache ne peuvent être émises que par des comptes principaux disposant des rôles IAM permettant de configurer des ressources liées à l'équilibreur de charge dans les projets frontend (par exemple, le rôle Administrateur de réseau Compute).

Les administrateurs de services, qui contrôlent le provisionnement des services de backend dans un projet distinct, doivent collaborer avec l'administrateur de l'équilibreur de charge du projet d'interface pour émettre une invalidation de cache pour leurs services inter-projets.

Étape suivante