Purge du cache du réseau CDN
Découvrez comment purger ou supprimer la réponse HTTP mise en cache du réseau CDN d’AEM as a Cloud Service. À l’aide de la fonctionnalité en libre-service appelée Purger le jeton API, vous pouvez purger le cache d’une ressource spécifique, d’un groupe de ressources et de l’ensemble du cache.
Dans ce tutoriel, découvrez comment configurer et utiliser la fonctionnalité Purger le jeton API pour purger le cache du réseau CDN de l’exemple de site AEM WKND à l’aide de la fonctionnalité de libre-service.
Invalidation du cache et purge explicite
Il existe deux façons de supprimer les ressources mises en cache du réseau CDN :
-
Invalidation du cache : il s’agit du processus de suppression des ressources mises en cache du réseau CDN en fonction des en-têtes de cache tels que
Cache-Control
,Surrogate-Control
ouExpires
. La valeur d’attributmax-age
de l’en-tête du cache est utilisée pour déterminer la durée de vie du cache des ressources, également appelée TTL (délai d’expiration) du cache. À l’expiration de la durée de vie du cache, les ressources mises en cache sont automatiquement supprimées du cache du réseau CDN. -
Purge explicite : il s’agit du processus de suppression manuelle des ressources mises en cache du cache du réseau CDN avant l’expiration du TTL. La purge explicite est utile lorsque vous souhaitez supprimer immédiatement les ressources mises en cache. Cependant, cela augmente le trafic vers le serveur d’origine.
Lorsque des ressources mises en cache sont supprimées du cache du réseau CDN, la requête suivante pour la même ressource récupère la dernière version du serveur d’origine.
Configurer la purge du jeton API
Découvrez comment configurer la purge du jeton API pour purger le cache du réseau CDN.
Configurer la règle du réseau CDN
Le jeton d’API de purge est créé en configurant la règle du réseau CDN dans le code de votre projet AEM.
-
Ouvrez le fichier
cdn.yaml
dans le dossierconfig
principal de votre projet AEM. Par exemple, le fichier cdn.yaml du projet WKND. -
Ajoutez les règles de réseau CDN suivantes au fichier
cdn.yaml
:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
data:
authentication: # The main authentication configuration
authenticators: # The list of authenticators
- name: purge-auth # The name of the authenticator
type: purge # The type of the authenticator, must be purge
purgeKey1: ${{CDN_PURGEKEY_081324}} # The first purge key, must be referenced by the Cloud Manager secret-type environment variable name ${{CDN_EDGEKEY_073124}}
purgeKey2: ${{CDN_PURGEKEY_111324}} # The second purge key, must be referenced by the Cloud Manager secret-type environment variable name ${{CDN_EDGEKEY_111324}}. It is used for the rotation of secrets without any interruptions.
rules: # The list of authentication rules
- name: purge-auth-rule # The name of the rule
when: { reqProperty: tier, equals: "publish" } # The condition when the rule should be applied
action: # The action to be taken when the rule is applied
type: authenticate # The type of the action, must be authenticate
authenticator: purge-auth # The name of the authenticator to be used, must match the name from the above authenticators list
Dans la règle ci-dessus, purgeKey1
et purgeKey2
sont ajoutés depuis le début pour prendre en charge la rotation des secrets sans interruption. Cependant, vous pouvez commencer avec uniquement purgeKey1
et ajouter purgeKey2
ultérieurement lors de la rotation des secrets.
- Enregistrez, validez et publiez les modifications dans le référentiel Adobe en amont.
Créer une variable d’environnement Cloud Manager
Créez ensuite les variables d’environnement Cloud Manager pour stocker la valeur Purger le jeton API.
-
Connectez-vous à Cloud Manager à l’adresse my.cloudmanager.adobe.com et sélectionnez votre organisation et votre programme.
-
Dans la section Environnements, cliquez sur les points de suspension (…) en regard de l’environnement souhaité, puis sélectionnez Afficher les détails.
-
Sélectionnez ensuite l’onglet Configuration et cliquez sur le bouton Ajouter la configuration.
-
Dans la boîte de dialogue Configuration de l’environnement, indiquez ce qui suit :
- Nom : saisissez le nom de la variable d’environnement. Elle doit correspondre à la valeur
purgeKey1
oupurgeKey2
du fichiercdn.yaml
. - Valeur : saisissez la valeur Purger le jeton API.
- Service appliqué : sélectionnez l’option Tous.
- Type : sélectionnez l’option Secret.
- Cliquez sur le bouton Ajouter.
- Nom : saisissez le nom de la variable d’environnement. Elle doit correspondre à la valeur
-
Répétez les étapes ci-dessus pour créer la seconde variable d’environnement pour la valeur
purgeKey2
. -
Cliquez sur Enregistrer pour enregistrer les modifications.
Déployer la règle du réseau CDN
Enfin, déployez la règle du réseau CDN configurée sur l’environnement AEM as a Cloud Service à l’aide du pipeline Cloud Manager.
-
Dans Cloud Manager, accédez à la section Pipelines.
-
Créez un pipeline ou sélectionnez le pipeline existant qui déploie uniquement les fichiers Config. Pour obtenir des instructions détaillées, voir Créer un pipeline de configuration.
-
Cliquez sur le bouton Exécuter pour déployer la règle CDN.
Utiliser le jeton API de purge
Pour purger le cache CDN, appelez l’URL de domaine spécifique au service AEM avec le jeton API de purge. La syntaxe pour purger le cache se présente comme suit :
PURGE <URL> HTTP/1.1
Host: <AEM_SERVICE_SPECIFIC_DOMAIN>
X-AEM-Purge-Key: <PURGE_API_TOKEN>
X-AEM-Purge: <PURGE_TYPE>
Surrogate-Key: <SURROGATE_KEY>
Où :
-
PURGE
<URL>
: la méthodePURGE
est suivie du chemin URL de la ressource que vous souhaitez purger. -
Host:
<AEM_SERVICE_SPECIFIC_DOMAIN>
: il spécifie le domaine du service AEM. -
X-AEM-Purge-Key:
<PURGE_API_TOKEN>
: un en-tête personnalisé qui contient la valeur du jeton API de purge. -
X-AEM-Purge:
<PURGE_TYPE>
: un en-tête personnalisé qui spécifie le type d’opération de purge. La valeur peut êtrehard
,soft
ouall
. Le tableau suivant décrit chaque type de purge :table 0-row-2 1-row-2 2-row-2 3-row-2 1-align-center 2-align-center 4-align-center 5-align-center 7-align-center 8-align-center 10-align-center 11-align-center Type de purge Description hard (par défaut) Supprime immédiatement la ressource mise en cache. Évitez-le, car cela augmente le trafic vers le serveur d’origine. soft Marque la ressource mise en cache comme obsolète et récupère la dernière version du serveur d’origine. tout Supprime toutes les ressources mises en cache du cache CDN. -
Surrogate-Key:
<SURROGATE_KEY>
: (facultatif) en-tête personnalisé qui spécifie les clés de substitution (séparées par un espace) des groupes de ressources à purger. La clé de substitution est utilisée pour regrouper les ressources et doit être définie dans l’en-tête de réponse de la ressource.
X-AEM-Purge: hard
est utilisé à des fins de démonstration. Vous pouvez le remplacer par soft
ou all
en fonction de vos besoins. Faites preuve de prudence lorsque vous utilisez le type de purge hard
, car cela augmente le trafic vers le serveur d’origine.Purger le cache d’une ressource spécifique
Dans cet exemple, la commande curl
purge le cache de la ressource /us/en.html
sur le site WKND déployé dans un environnement AEM as a Cloud Service.
curl -X PURGE "https://publish-p46652-e1315806.adobeaemcloud.com/us/en.html" \
-H "X-AEM-Purge-Key: 123456789" \
-H "X-AEM-Purge: hard"
Une fois la purge terminée, une réponse 200 OK
est renvoyée avec du contenu JSON.
{ "status": "ok", "id": "1000098-1722961031-13237063" }
Purger le cache d’un groupe de ressources
Dans cet exemple, la commande curl
purge le cache du groupe de ressources avec la clé de substitution wknd-assets
. L’en-tête de réponse Surrogate-Key
est défini dans wknd.vhost
, par exemple :
<VirtualHost *:80>
...
# Core Component Image Component: long-term caching (30 days) for immutable URLs, background refresh to avoid MISS
<LocationMatch "^/content/.*\.coreimg.*\.(?i:jpe?g|png|gif|svg)$">
Header set Cache-Control "max-age=2592000,stale-while-revalidate=43200,stale-if-error=43200,public,immutable" "expr=%{REQUEST_STATUS} < 400"
# Set Surrogate-Key header to group the cache of WKND assets, thus it can be flushed independtly
Header set Surrogate-Key "wknd-assets"
Header set Age 0
</LocationMatch>
...
</VirtualHost>
curl -X PURGE "https://publish-p46652-e1315806.adobeaemcloud.com" \
-H "Surrogate-Key: wknd-assets" \
-H "X-AEM-Purge-Key: 123456789" \
-H "X-AEM-Purge: hard"
Une fois la purge terminée, une réponse 200 OK
est renvoyée avec du contenu JSON.
{ "wknd-assets": "10027-1723478994-2597809-1" }
Purger l’intégralité du cache
Dans cet exemple, à l’aide de la commande curl
, l’intégralité du cache est purgée de l’exemple de site WKND déployé sur l’environnement AEM as a Cloud Service.
curl -X PURGE "https://publish-p46652-e1315806.adobeaemcloud.com/" \
-H "X-AEM-Purge-Key: 123456789" \
-H "X-AEM-Purge: all"
Une fois la purge terminée, une réponse 200 OK
est renvoyée avec du contenu JSON.
{"status":"ok"}
Vérifier la purge du cache
Pour vérifier la purge du cache, accédez à l’URL de la ressource dans le navigateur web et passez en revue les en-têtes de réponse. La valeur de l’en-tête X-Cache
doit être MISS
.