Invalider un contenu mis en cache

Cette page explique comment invalider du contenu Cloud CDN mis en cache.

Par exemple, si un fichier situé à l'emplacement /images/file.jpg a été mis en cache et doit être invalidé, vous pouvez utiliser pour cela plusieurs méthodes, selon que vous souhaitez affecter uniquement ce fichier ou un champ d'application plus étendu. Dans chaque cas, vous pouvez invalider le contenu pour tous les noms d'hôte ou un seul nom d'hôte.

Pour en savoir plus sur l'invalidation de cache, consultez la section Présentation de l'invalidation de cache.

Avant de commencer

Vous pouvez utiliser Google Cloud CLI ou la console Google Cloud pour effectuer des invalidations.

Vous pouvez accéder à Google Cloud CLI de deux manières :

  • Installez Google Cloud CLI en suivant les instructions fournies sur la page Installation avec apt-get. Si vous n'avez pas encore utilisé Google Cloud CLI, exécutez d'abord gcloud init pour vous authentifier.

  • Utilisez Cloud Shell, qui comprend déjà gcloud.

Pour créer un rôle personnalisé ayant l'autorisation requise, consultez la section Créer et gérer les rôles personnalisés.

Pour ajouter un rôle prédéfini, utilisez le guide de démarrage rapide IAM.

Invalider un seul fichier

Console

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

    Accéder à Cloud CDN

  2. Cliquez sur une origine.

  3. Cliquez sur l'onglet Invalidation de cache.

  4. Pour Équilibreurs de charge associés, sélectionnez l'équilibreur de charge.

  5. Sous Spécifier les objets à invalider, procédez comme suit:

    • Pour Host (Hôte), spécifiez un nom d'hôte, sauf si vous souhaitez invalider le chemin pour tous les noms d'hôte.
    • Dans Chemin d'accès, spécifiez le chemin d'accès et le nom du fichier, par exemple, /images/file.jpg.
  6. Cliquez sur Invalider.

gcloud

Utilisez la commande gcloud compute url-maps invalidate-cdn-cache.

Pour spécifier un seul fichier à invalider, utilisez l'option --path avec le nom du fichier.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/file.jpg"

Remplacez URL_MAP_NAME par le nom de votre mappage d'URL. Pour répertorier vos mappages d'URL, utilisez la commande gcloud compute url-maps list.

Pour invalider un seul hôte, ajoutez l'indicateur --host (par exemple, --host host1.com).

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/file.jpg"

Par défaut, Google Cloud CLI attend la fin de l'invalidation. Pour effectuer l'invalidation en arrière-plan, ajoutez --async à la ligne de commande.

API

Exécutez la méthode urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre projet dans la console Google Cloud
  • URL_MAP_NAME: nom du mappage d'URL

Pour spécifier un fichier à invalider, utilisez l'exemple de corps de requête JSON suivant:

{
  "path": "/images/file.jpg"
}

Pour invalider le fichier pour un seul hôte, utilisez l'exemple de corps de requête JSON suivant:

{
  "host": "host1.com",
  "path": "/images/file.jpg"
}

Invalider l'intégralité du répertoire

Console

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

    Accéder à Cloud CDN

  2. Cliquez sur une origine.

  3. Cliquez sur l'onglet Invalidation de cache.

  4. Pour Équilibreurs de charge associés, sélectionnez l'équilibreur de charge.

  5. Sous Spécifier les objets à invalider, procédez comme suit:

    • Pour Host (Hôte), spécifiez un nom d'hôte, sauf si vous souhaitez invalider le chemin pour tous les noms d'hôte.
    • Dans le champ Chemin d'accès, spécifiez le chemin d'accès et un astérisque comme caractère générique (par exemple, /images/*).
  6. Cliquez sur Invalider.

gcloud

Utilisez la commande gcloud compute url-maps invalidate-cdn-cache.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/*"

Remplacez URL_MAP_NAME par le nom de votre mappage d'URL.

Pour invalider un seul hôte, ajoutez l'indicateur --host (par exemple, --host host1.com).

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/*"

API

Exécutez la méthode urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre projet dans la console Google Cloud
  • URL_MAP_NAME: nom du mappage d'URL

Pour spécifier un répertoire à invalider, utilisez l'exemple de corps de requête JSON suivant:

{
  "path": "/images/*"
}

Pour invalider un répertoire pour un seul hôte, utilisez l'exemple de corps de requête JSON suivant:

{
  "host": "host1.com",
  "path": "/images/*"
}

Invalider par tag de cache

Console

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

    Accéder à Cloud CDN

  2. Cliquez sur une origine.

  3. Cliquez sur l'onglet Invalidation de cache.

  4. Pour Équilibreurs de charge associés, sélectionnez l'équilibreur de charge.

  5. Sous Spécifier les objets à invalider, pour Tags de cache, spécifiez un ou plusieurs tags à invalider. Séparez les balises par des espaces ou des virgules.

  6. Cliquez sur Invalider.

gcloud

Utilisez la commande gcloud beta compute url-maps invalidate-cdn-cache.

gcloud beta compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --tags=TAGS

Remplacez les éléments suivants :

  • URL_MAP_NAME: nom du mappage d'URL
  • TAGS: balise ou liste de balises séparées par une virgule. Vous pouvez également spécifier cet indicateur jusqu'à 10 fois.

Par exemple, si la réponse du backend inclut un en-tête Cache-Tag avec un ID utilisateur opaque, tel qu'un UUID4 ou une autre forme de GUID, vous pouvez invalider tout le contenu pour un utilisateur spécifique à l'aide de l'indicateur tag. De plus, pour invalider le contenu pour un seul hôte, comme pour votre environnement de préproduction, ajoutez l'indicateur --host.

gcloud beta compute url-maps invalidate-cdn-cache url_map_1 \
    --tags="1115b8f4-f804-4861-9629-8cb9aecdeeb3" \
    --host="host1.com"

API

Exécutez la méthode urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre projet dans la console Google Cloud
  • URL_MAP_NAME: nom du mappage d'URL

Pour spécifier des balises de cache à infirmer, utilisez l'exemple de corps de requête JSON suivant:

{
  "cacheTags": [
    "tag1",
    "tag2"
  ]
}

Vous pouvez spécifier un seul tag ou une liste de tags séparés par une virgule.

Pour invalider par tags de cache pour un seul hôte, utilisez l'exemple de corps de requête JSON suivant:

{
  "host": "host1.com",
  "path": "tag1,tag2"
}

Tout invalider

Bien que vous puissiez invalider tout le contenu, cela peut s'avérer risqué. Évaluez soigneusement vos exigences avant de continuer.

Console

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

    Accéder à Cloud CDN

  2. Cliquez sur une origine.

  3. Cliquez sur l'onglet Invalidation de cache.

  4. Pour Équilibreurs de charge associés, sélectionnez l'équilibreur de charge.

  5. Sous Spécifier les objets à invalider, procédez comme suit:

    • Pour Host (Hôte), spécifiez un nom d'hôte, sauf si vous souhaitez invalider le chemin pour tous les noms d'hôte.
    • Dans le champ Chemin d'accès, utilisez un astérisque (par exemple, /*).
  6. Cliquez sur Invalider, puis sur Confirmer pour indiquer que vous souhaitez que Cloud CDN invalide tout.

gcloud

Utilisez la commande gcloud compute url-maps invalidate-cdn-cache.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/*"

Remplacez les éléments suivants :

  • URL_MAP_NAME: nom du mappage d'URL
  • /*: chemin d'URL que vous souhaitez invalider (n'inclut pas le nom d'hôte). Le chemin peut utiliser un nom de fichier explicite ou un astérisque comme caractère générique.

Pour invalider un seul hôte, ajoutez l'indicateur --host (par exemple, --host host1.com).

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/*"

API

Exécutez la méthode urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre projet dans la console Google Cloud
  • URL_MAP_NAME: nom du mappage d'URL

Pour spécifier un chemin d'URL à invalider, utilisez l'exemple de corps de requête JSON suivant:

{
  "path": "/*"
}

Pour invalider le chemin d'accès de l'URL pour un seul hôte, utilisez l'exemple de corps de requête JSON suivant:

{
  "host": "host1.com",
  "path": "/*"
}

Consulter l'état de votre demande d'invalidation

Cloud CDN émet deux lignes de journal par invalidation, l'une lorsque l'invalidation est acceptée et l'autre lorsqu'elle est terminée. Le premier contient les informations sur l'hôte et le chemin d'accès.

Pour afficher l'état de votre demande d'invalidation ou trouver une liste définitive des demandes récemment envoyées, vous pouvez utiliser Cloud Logging ou Cloud Monitoring.

Console

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

    Accéder à Cloud CDN

  2. Cliquez sur une origine.

  3. Cliquez sur l'onglet Invalidation de cache.

  4. Pour afficher l'état et les résultats de la demande d'invalidation, cliquez sur Accéder à Cloud Logging.

gcloud

Voici un exemple de commande qui utilise la journalisation:

gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \
    --limit=10

Voici un exemple de requête qui utilise la surveillance:

protoPayload.serviceName="compute.googleapis.com"
protoPayload.methodName="v1.compute.urlMaps.invalidateCache"

Étape suivante