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
Pour découvrir comment invalider votre contenu Cloud CDN mis en cache, consultez la page Invalider un contenu mis en cache.
Pour savoir quels contenus peuvent être mis en cache ou non, consultez la page Présentation de la mise en cache.