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:

  1. Ü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.
  2. 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.com durch den tatsächlichen Domain-Namen, der in den Domain-Einstellungen konfiguriert ist.
  3. 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.
  4. 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.
recommendation-more-help
experience-cloud-kcs-help-kbarticles