Berechnen des Umfangs einer CDN-Pipeline-Regel für eine bestimmte Domain mithilfe von cdn.yml
Eine unbeabsichtigte CDN-Regel kann sich auf andere Domains in derselben Umgebung auswirken, wenn sie nicht explizit angewendet wird. In diesem Artikel wird erläutert, wie Sie eine CDN-Pipeline-Regel in Adobe Experience Manager (AEM) Cloud Service auf eine bestimmte Domain beschränken, indem Sie in cdn.yml eine Host-Bedingung hinzufügen.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM) Cloud Service
Problem/Symptome
Sie möchten einen älteren Dynamic Media-Bereitstellungsendpunkt in einer niedrigeren Umgebung (DEV) mithilfe der CDN-Pipeline von Cloud Manager über die cdn.yml blockieren. Die folgende YAML-Konfiguration blockiert Anfragen, die mit dem Pfad /adobe/dynamicmedia/deliver/ übereinstimmen, und gibt eine 410-Antwort zurück:
rules:
- name: block-legacy-delivery-endpoint
when:
allOf:
- reqProperty: path
matches: /adobe/dynamicmedia/deliver(/.*)?$
actions:
- type: respond
status: 410 reason: "Legacy Dynamic Media endpoint is deprecated"
Sie müssen bestätigen, ob diese Regel für alle konfigurierten Domains in der Umgebung gilt und wie Sie sie einschränken, sodass sie nur die beabsichtigte VCR-Domain betrifft.
- Anfragen an den alten Dynamic Media-Endpunkt werden erwartungsgemäß blockiert.
- Anfragen an OpenAPI Dynamic Media-URLs sind über zulässig.
- Sie müssen sicherstellen, dass die Regel nur für eine bestimmte Domain und nicht für alle Domains in der Umgebung gilt.
Ursache
Standardmäßig gelten die CDN-Regeln in cdn.yml für alle Domains, es sei denn, sie werden explizit angewendet. Durch Hinzufügen einer Host-Bedingung wird sichergestellt, dass die Regel nur die beabsichtigte Domain betrifft.
Lösung resolution
Beheben des Problems:
-
Überprüfen Sie die aktuelle CDN-Regelkonfiguration in
cdn.yml.- Die Regel gleicht Anfragen basierend auf dem
/adobe/dynamicmedia/deliver/Pfad ab. - Standardmäßig gilt diese Regel für alle in der Umgebung konfigurierten Domains, es sei denn, sie wird weiter ausgeführt.
- Die Regel gleicht Anfragen basierend auf dem
-
Definieren Sie die Regel auf eine bestimmte Domain.
- Fügen Sie eine Domain-Bedingung zum Abschnitt “
when” der Regel hinzu. - Verwenden Sie die folgende Beispielsyntax:
code language-none - name: block-legacy-delivery-endpoint when: allOf: - reqProperty: host matches: your-vcr-domain\.example\.com$ - reqProperty: path matches: /adobe/dynamicmedia/deliver(/.*)?$ actions: - type: respond status: 410 reason: "Legacy Dynamic Media endpoint is deprecated"- Ersetzen Sie
your-vcr-domain.example.comdurch den tatsächlichen Domain-Namen, der in den Domain-Einstellungen konfiguriert ist.
- Fügen Sie eine Domain-Bedingung zum Abschnitt “
-
Stellen Sie die aktualisierte
cdn.ymlKonfiguration über Cloud Manager bereit.- Übertragen Sie die Änderungen in das Repository und übertragen Sie sie.
- Stellen Sie über die Cloud Manager-Pipeline bereit, um die Regel anzuwenden.
-
Validieren Sie die Regel in der Zielumgebung.
- Testen Sie Anfragen an den Legacy-Endpunkt in der Domain, um zu bestätigen, dass sie blockiert sind.
- Testen Sie Anfragen an denselben Endpunkt auf anderen Domains, um sicherzustellen, dass sie nicht betroffen sind.
- Vergewissern Sie sich, dass die OpenAPI Dynamic Media-URLs nicht betroffen sind.