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 Google Cloud Console 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 Google Cloud Console, accédez à la page Cloud CDN.

    Accéder à la page "Cloud CDN"

  2. Sous Équilibreurs de charge associés, cliquez sur le nom de l'équilibreur de charge.
  3. Cliquez sur l'onglet Invalidation de cache.
  4. Saisissez le chemin du fichier.
    • Si vous souhaitez invalider un chemin pour tous les noms d'hôte, ne saisissez que le chemin (par exemple, /images/file.jpg).
    • Si vous souhaitez invalider un chemin d'accès pour un seul nom d'hôte, spécifiez le nom d'hôte dans le chemin (par exemple : host1.com/images/file.jpg).
  5. 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

Utilisez l'appel d'API de 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 Google Cloud Console, accédez à la page Cloud CDN.

    Accéder à la page "Cloud CDN"

  2. Sous Équilibreurs de charge associés, cliquez sur le nom de l'équilibreur de charge.
  3. Cliquez sur l'onglet Invalidation de cache.
  4. Saisissez le chemin du répertoire et le caractère générique (/path/to/file/*).
    • Si vous souhaitez invalider tout le répertoire pour tous les noms d'hôte, saisissez uniquement le chemin d'accès et le caractère générique (par exemple, /images/*).
    • Si vous souhaitez invalider tout le répertoire pour un seul nom d'hôte, spécifiez le nom d'hôte dans le chemin (par exemple, host1.com/images/*).
  5. 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

Utilisez l'appel d'API de 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

L'utilisation de tags de cache pour l'invalidation n'est pas prise en charge dans la console Google Cloud.

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

Utilisez l'appel d'API de 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:

{
  "tags": "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

Console

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

    Accéder à la page "Cloud CDN"

  2. Sous Équilibreurs de charge associés, cliquez sur le nom de l'équilibreur de charge.
  3. Cliquez sur l'onglet Invalidation de cache.
  4. Saisissez uniquement la racine et le caractère générique (/*).
    • Si vous souhaitez invalider la totalité du contenu pour tous les noms d'hôte, saisissez uniquement /* dans le champ.
    • Si vous souhaitez invalider la totalité du contenu pour un seul nom d'hôte, spécifiez le nom d'hôte dans le chemin (par exemple : host1.com/*).
  5. 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 "/*"

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 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

Utilisez l'appel d'API de 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 connaître l'état de votre demande d'invalidation ou obtenir une liste définitive des demandes envoyées récemment, vous pouvez utiliser Cloud Logging ou Cloud Monitoring.

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