Dispatcher-Cache-Invalidierung für freigegebene Inhalte in AEM as a Cloud Service
Wenn Sie freigegebene Inhalte aktualisieren, die von zwischengespeicherten Seiten verwendet werden, kann durch das Veröffentlichen des freigegebenen Elements allein nicht sichergestellt werden, dass jede verarbeitete Seite oder CDN-Antwort neu ist. Adobe dokumentiert die explizite Dispatcher-Invalidierung durch Sling Content Distribution (SCD) in der Autoreninstanz; das von Adobe verwaltete CDN folgt den Antwort-Cache-Headern und der TTL separat. Um dies zu beheben, identifizieren Sie die betroffenen Seitenpfade, wählen Sie eine Invalidierungs- oder TTL-Strategie für Ihre Implementierung aus und testen Sie das Dispatcher- und CDN-Verhalten separat.
Beschreibung description
Umgebung
Adobe Experience Manager as a Cloud Service-Veröffentlichung mit Dispatcher und dem von Adobe verwalteten CDN.
Problem/Symptome
- Nach dem Veröffentlichen eines Experience Fragments, Inhaltsfragments oder DAM-Assets zeigt eine Seite, die den freigegebenen Inhalt verwendet, die ältere Ausgabe an.
- Sie müssen ermitteln, ob die Seite, die freigegebene Ressource oder die CDN-Antwort zwischengespeichert bleibt.
- Es wird kein Produktfehler gemeldet. Die Frage betrifft das Verhalten bei Cache-Invalidierung und die Cache-Aktualität.
Ursache
AEM as a Cloud Service bietet eine standardmäßige Rückverweis-Cache-Invalidierung nur für Experience Fragments. Für Inhaltsfragmente und DAM-Assets ist eine benutzerdefinierte Konfiguration erforderlich, um sicherzustellen, dass verweisende Seiten invalidiert werden, wenn freigegebene Inhalte aktualisiert werden.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
-
Überprüfen Sie das Verhalten bei der standardmäßigen Cache-Invalidierung:
- Wenn Sie ein Experience Fragment veröffentlichen, löst AEM as a Cloud Service automatisch alle Seiten auf, die auf das Fragment verweisen, und gibt für jeden verbrauchenden
.htmleine reine Leerung auf. Es ist keine benutzerdefinierte Konfiguration erforderlich. - Wenn Sie ein Inhaltsfragment veröffentlichen, wird nur der Pfad des Inhaltsfragments ungültig. Seiten, die auf das Inhaltsfragment verweisen, werden nicht standardmäßig geleert.
- Beim Veröffentlichen eines DAM-Assets werden nur das Asset und seine Ausgabedarstellungen ungültig. Seiten, die auf das Asset verweisen, werden nicht standardmäßig geleert.
- Wenn Sie eine Seite veröffentlichen, wird nur der Seitenpfad geleert. Referenzierte Experience Fragments, Inhaltsfragmente und DAM-Assets werden nicht standardmäßig geleert.
- Wenn
/statfileslevel "2"konfiguriert ist, wird bei der Invalidierung eines Pfads unter einem Verzeichnis nicht der gesamte Teilbaum geleert. Nur der spezifische Pfad und die unmittelbar übergeordnete statfile sind betroffen.
- Wenn Sie ein Experience Fragment veröffentlichen, löst AEM as a Cloud Service automatisch alle Seiten auf, die auf das Fragment verweisen, und gibt für jeden verbrauchenden
-
Um verweisende Seiten ungültig zu machen, wenn Inhaltsfragmente oder DAM-Assets veröffentlicht werden, verwenden Sie einen der folgenden unterstützten Ansätze:
- Implementieren Sie einen benutzerdefinierten SCD-INVALIDATE-Handler, der verweisende Seiten auflöst, wenn ein Inhaltsfragment oder Asset veröffentlicht wird, und gezielte Invalidierungen auslöst.
- Verwenden Sie die ACS AEM Commons Dispatcher Flush-Regeln , um Regex-basierte Zuordnungen zwischen veröffentlichten Inhalten und verweisenden Seiten zu erstellen.
- Stellen Sie freigegebene Inhalte als unabhängig zwischenspeicherbare Fragmente bereit, z. B. mithilfe von Sling Dynamic Include.
- Konfigurieren Sie als Zwischenlösung eine begrenzte TTL (Time-to-Live) für Seiten, die Inhaltsfragmente oder Assets verwenden, indem Sie
cdn.yaml- oder Dispatcher-Antwortkopfzeilen verwenden.
-
Nach der Implementierung des ausgewählten Ansatzes veröffentlichen Sie ein freigegebenes Inhaltselement und überprüfen Sie, ob alle verweisenden Seiten den aktualisierten Inhalt widerspiegeln.