Rensa CDN-cachen
Lär dig hur du rensar eller tar bort det cachelagrade HTTP-svaret från AEM as a Cloud Service CDN. Med självbetjäningsfunktionen Rensa API-token kan du rensa cachen för en viss resurs, en grupp resurser och hela cachen.
I den här självstudien får du lära dig hur du konfigurerar och använder rensnings-API-token för att rensa CDN-cachen för exempelwebbplatsen AEM WKND med hjälp av självbetjäningsfunktionen.
Cacheogiltigförklaring kontra explicit tömning
Det finns två sätt att ta bort cachelagrade resurser från CDN:
-
Cacheogiltigförklaring: Det är processen att ta bort cachelagrade resurser från CDN baserat på cacherubriker som
Cache-Control
,Surrogate-Control
ellerExpires
. Cacherubrikensmax-age
-attributvärde används för att fastställa resursernas cachelivstid, som också kallas TTL-cache (Time To Live). När cacheminnets livstid går ut tas de cachelagrade resurserna automatiskt bort från CDN-cachen. -
Explicit rensning: Det är processen att manuellt ta bort cachelagrade resurser från CDN-cachen innan TTL-värdet upphör att gälla. Den explicita rensningen är användbar när du vill ta bort de cachelagrade resurserna omedelbart. Det ökar dock trafiken till den ursprungliga servern.
När cachelagrade resurser tas bort från CDN-cachen hämtar nästa begäran för samma resurs den senaste versionen från den ursprungliga servern.
Konfigurera rensnings-API-token
Låt oss lära oss hur du ställer in rensnings-API-token för att rensa CDN-cachen.
Konfigurera CDN-regeln
Token för rensnings-API skapas genom att CDN-regeln konfigureras i AEM projektkod.
-
Öppna filen
cdn.yaml
från huvudmappenconfig
i AEM. Exempel: filen cdn.yaml🔗 för WKND-projektet. -
Lägg till följande CDN-regel i filen
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
I ovanstående regel läggs både purgeKey1
och purgeKey2
till från början så att hemligheter kan roteras utan avbrott. Du kan dock börja med endast purgeKey1
och lägga till purgeKey2
senare när du roterar hemligheterna.
- Spara, implementera och skicka ändringarna till databasen i det övre Adobe.
Skapa Cloud Manager-miljövariabel
Skapa sedan Cloud Manager-miljövariablerna för att lagra Token-värdet för rensnings-API.
-
Logga in på Cloud Manager på my.cloudmanager.adobe.com och välj organisation och program.
-
Klicka på ellipserna (…) bredvid önskad miljö i avsnittet Miljö och välj Visa detaljer.
-
Välj sedan fliken Konfiguration och klicka på knappen Lägg till konfiguration .
-
Ange följande information i dialogrutan Miljökonfiguration:
- Namn: Ange namnet på miljövariabeln. Det måste matcha värdet
purgeKey1
ellerpurgeKey2
från filencdn.yaml
. - Värde: Ange Token-värdet för rensnings-API.
- Tjänsten används: Välj alternativet Alla.
- Typ: Välj alternativet Hemlighet.
- Klicka på knappen Lägg till.
- Namn: Ange namnet på miljövariabeln. Det måste matcha värdet
-
Upprepa stegen ovan för att skapa den andra systemvariabeln för värdet
purgeKey2
. -
Klicka på Spara för att spara och tillämpa ändringarna.
Distribuera CDN-regeln
Distribuera slutligen den konfigurerade CDN-regeln till AEM as a Cloud Service-miljön med Cloud Manager pipeline.
-
I Cloud Manager går du till avsnittet Pipelines.
-
Skapa en ny pipeline eller välj den befintliga pipeline som endast distribuerar Config-filerna. Detaljerade steg finns i Skapa en konfigurationspipeline.
-
Klicka på knappen Kör för att distribuera CDN-regeln.
Använd rensnings-API-token
Om du vill rensa CDN-cachen anropar du den AEM tjänstspecifika domän-URL:en med rensnings-API-token. Syntaxen för att rensa cachen är följande:
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>
Var:
-
PURGE
<URL>
: MetodenPURGE
följs av URL-sökvägen för resursen som du vill rensa. -
Värd:
<AEM_SERVICE_SPECIFIC_DOMAIN>
: Den anger domänen för AEM. -
X-AEM-Rensa-nyckel:
<PURGE_API_TOKEN>
: En anpassad rubrik som innehåller Token-värdet för Rensa API. -
X-AEM-Rensa:
<PURGE_TYPE>
: En anpassad rubrik som anger typen av rensningsåtgärd. Värdet kan varahard
,soft
ellerall
. I följande tabell beskrivs varje tömningstyp: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 Töm typ Beskrivning hård (standard) Tar bort den cachelagrade resursen omedelbart. Undvik det eftersom det ökar trafiken till den ursprungliga servern. mjuk Markerar den cachelagrade resursen som inaktuell och hämtar den senaste versionen från den ursprungliga servern. alla Tar bort alla cachelagrade resurser från CDN-cachen. -
Surrogate-Key:
<SURROGATE_KEY>
: (Valfritt) En anpassad rubrik som anger surrogatnycklarna (avgränsade med blanksteg) för resursgrupperna som ska rensas. surrogatnyckeln används för att gruppera resurserna och måste anges i resursens svarshuvud.
X-AEM-Purge: hard
som exempel. Du kan ersätta den med soft
eller all
baserat på dina krav. Var försiktig när du använder rensningstypen hard
eftersom den ökar trafiken till den ursprungliga servern.Rensa cacheminnet för en viss resurs
I det här exemplet rensar kommandot curl
cachen för resursen /us/en.html
på WKND-platsen som distribuerats i en AEM as a Cloud Service-miljö.
curl -X PURGE "https://publish-p46652-e1315806.adobeaemcloud.com/us/en.html" \
-H "X-AEM-Purge-Key: 123456789" \
-H "X-AEM-Purge: hard"
När rensningen lyckades returneras ett 200 OK
-svar med JSON-innehåll.
{ "status": "ok", "id": "1000098-1722961031-13237063" }
Rensa cacheminnet för en grupp resurser
I det här exemplet rensar kommandot curl
cachen för resursgruppen med surrogatnyckeln wknd-assets
. Svarshuvudet Surrogate-Key
anges i wknd.vhost
, till exempel:
<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"
När rensningen lyckades returneras ett 200 OK
-svar med JSON-innehåll.
{ "wknd-assets": "10027-1723478994-2597809-1" }
Rensa hela cacheminnet
I det här exemplet rensas hela cachen från exempelwebbplatsen WKND som distribuerats i AEM as a Cloud Service-miljön med kommandot curl
.
curl -X PURGE "https://publish-p46652-e1315806.adobeaemcloud.com/" \
-H "X-AEM-Purge-Key: 123456789" \
-H "X-AEM-Purge: all"
När rensningen lyckades returneras ett 200 OK
-svar med JSON-innehåll.
{"status":"ok"}
Verifiera rensning av cache
Verifiera rensningen av cacheminnet genom att öppna resurs-URL:en i webbläsaren och granska svarsrubrikerna. Rubrikvärdet X-Cache
ska vara MISS
.