Konfigurieren von Traffic im CDN cdn-configuring-cloud
AEM as a Cloud Service bietet eine Reihe von Funktionen, die auf der Ebene Adobe-verwaltetes CDN konfigurierbar sind und die Art von eingehenden Anfragen oder ausgehenden Antworten ändern. Die folgenden Regeln, die auf dieser Seite detailliert beschrieben werden, können deklariert werden, um das folgende Verhalten zu erreichen:
- Anforderungsumwandlungen – Änderung von Aspekten eingehender Anfragen, einschließlich Kopfzeilen, Pfaden und Parametern.
- Reaktionsumwandlungen – Änderung von Kopfzeilen, die sich auf dem Weg zurück zum Client befinden (z. B. einen Webbrowser).
- Client-seitige Umleitungen – Auslöser einer Browser-Umleitung. Diese Funktion ist noch nicht allgemein verfügbar, steht aber für Early-Adopter zur Verfügung.
- Ursprungs-Auswahlen – Proxy zu einem anderen Ursprungs-Backend.
Ebenfalls im CDN konfigurierbar sind Traffic-Filterregeln (einschließlich WAF), die steuern, welcher Traffic vom CDN erlaubt oder verweigert wird. Diese Funktion wurde bereits veröffentlicht. Weitere Informationen dazu finden Sie auf der Seite Traffic-Filterregeln, einschließlich WAF-Regeln.
Wenn das CDN nicht in der Lage ist, seinen Ursprung zu erreichen, können Sie außerdem eine Regel schreiben, die auf eine selbstgehostete benutzerdefinierte Fehlerseite verweist (die dann gerendert wird). Weitere Informationen hierzu finden Sie im Artikel Konfigurieren von CDN-Fehlerseiten.
Alle diese Regeln, die in einer Konfigurationsdatei in der Verwaltung der Quelle deklariert sind, werden mithilfe der Cloud Manager-Konfigurations-Pipeline bereitgestellt. Beachten Sie, dass die kumulative Größe der Konfigurationsdatei, einschließlich Traffic-Filterregeln, 100 KB nicht überschreiten darf.
Reihenfolge der Auswertung order-of-evaluation
Funktionell werden die verschiedenen oben erwähnten Funktionen in der folgenden Sequenz ausgewertet:
Setup initial-setup
Bevor Sie Traffic im CDN konfigurieren können, müssen Sie Folgendes tun:
- Erstellen Sie diesen Ordner und die Dateistruktur im obersten Ordner Ihres Git-Projekts:
config/
cdn.yaml
-
Die Konfigurationsdatei
cdn.yaml
sollte sowohl Metadaten als auch die Regeln enthalten, die in den nachfolgenden Beispielen beschrieben sind. Der Parameterkind
sollte aufCDN
und die Version auf die Schemaversion eingestellt sein (derzeit1
). -
Erstellen Sie eine zielgerichtete Bereitstellungskonfigurations-Pipeline in Cloud Manager. Siehe Konfigurieren von Produktions-Pipelines und Konfigurieren von produktionsfremden Pipelines.
Anmerkungen
- RDEs unterstützen derzeit nicht die Konfigurations-Pipeline.
- Sie können
yq
verwenden, um die YAML-Formatierung Ihrer Konfigurationsdatei lokal zu überprüfen (z. B.yq cdn.yaml
).
Syntax configuration-syntax
Die Regeltypen in den folgenden Abschnitten verwenden eine gemeinsame Syntax.
Eine Regel wird durch einen Namen, einen Bedingungssatz mit „Wenn“ und Aktionen referenziert.
Der Bedingungssatz bestimmt, ob eine Regel basierend auf Eigenschaften wie Domain, Pfad, Abfragezeichenfolgen, Header und Cookies ausgewertet wird. Die Syntax ist für alle Regeltypen gleich. Weitere Informationen finden Sie im Abschnitt „Bedingungsstruktur“ im Artikel zu Traffic-Filterregeln.
Die Details des Aktionsknotens unterscheiden sich je nach Regeltyp und sind in den einzelnen Abschnitten unten beschrieben.
Anforderungsumwandlungen request-transformations
Mit Regeln für Anforderungsumwandlungen können Sie eingehende Anforderungen ändern. Die Regeln unterstützen das Festlegen, Aufheben und Ändern von Pfaden, Abfrageparametern und Kopfzeilen (einschließlich Cookies) basierend auf verschiedenen passenden Bedingungen, einschließlich regulärer Ausdrücke. Sie können auch Variablen festlegen, die später in der Auswertungssequenz referenziert werden können.
Die Anwendungsfälle sind unterschiedlich und enthalten URL-Neuschreibungen zur Vereinfachung der Anwendung oder zur Zuordnung von veralteten URLs.
Wie bereits erwähnt, gibt es eine Größenbeschränkung für die Konfigurationsdatei, sodass Organisationen mit größeren Anforderungen Regeln auf der apache/dispatcher
-Ebene definieren sollten.
Konfigurationsbeispiel:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
data:
requestTransformations:
removeMarketingParams: true
rules:
- name: set-header-rule
when:
reqProperty: path
like: /set-header
actions:
- type: set
reqHeader: x-some-header
value: some value
- name: unset-header-rule
when:
reqProperty: path
like: /unset-header
actions:
- type: unset
reqHeader: x-some-header
- name: unset-matching-query-params-rule
when:
reqProperty: path
equals: /unset-matching-query-params
actions:
- type: unset
queryParamMatch: ^removeMe_.*$
- name: unset-all-query-params-except-exact-two-rule
when:
reqProperty: path
equals: /unset-all-query-params-except-exact-two
actions:
- type: unset
queryParamMatch: ^(?!leaveMe$|leaveMeToo$).*$
- name: multi-action
when:
reqProperty: path
like: /multi-action
actions:
- type: set
reqHeader: x-header1
value: body set by transformation rule
- type: set
reqHeader: x-header2
value: '201'
- name: replace-html
when:
reqProperty: path
like: /mypath
actions:
- type: transform
reqProperty: path
op: replace
match: \.html$
replacement: ""
Aktionen
In der folgenden Tabelle werden die verfügbaren Aktionen erläutert.
Aktionen können miteinander verkettet werden. Zum Beispiel:
actions:
- type: transform
reqProperty: path
op: replace
match: \.html$
replacement: ""
- type: transform
reqProperty: path
op: tolower
Variablen variables
Sie können Variablen während der Anforderungsumwandlung festlegen und später in der Auswertungssequenz darauf verweisen. Weitere Informationen finden Sie im Diagramm Reihenfolge der Auswertung.
Konfigurationsbeispiel:
kind: "CDN"
version: "1"
metadata:
envTypes: ["prod", "dev"]
data:
requestTransformations:
rules:
- name: set-variable-rule
when:
reqProperty: path
equals: /set-variable
actions:
- type: set
var: some_var_name
value: some_value
responseTransformations:
rules:
- name: set-response-header-while-variable
when:
var: some_var_name
equals: some_value
actions:
- type: set
respHeader: x-some-header
value: some header value
Reaktionsumwandlungen response-transformations
Mit Regeln zur Reaktionsumwandlung können Sie Kopfzeilen der ausgehenden Antworten des CDN festlegen und aufheben. Siehe auch das Beispiel oben für Referenzen auf eine Variable, die zuvor in einer Regel zu Anfrageumwandlung festgelegt wurde.
Konfigurationsbeispiel:
kind: "CDN"
version: "1"
metadata:
envTypes: ["prod", "dev"]
data:
responseTransformations:
rules:
- name: set-response-header-rule
when:
reqProperty: path
like: /set-response-header
actions:
- type: set
value: value-set-by-resp-rule
respHeader: x-resp-header
- name: unset-response-header-rule
when:
reqProperty: path
like: /unset-response-header
actions:
- type: unset
respHeader: x-header1
# Example: Multi-action on response header
- name: multi-action-response-header-rule
when:
reqProperty: path
like: /multi-action-response-header
actions:
- type: set
respHeader: x-resp-header-1
value: value-set-by-resp-rule-1
- type: set
respHeader: x-resp-header-2
value: value-set-by-resp-rule-2
Aktionen
In der folgenden Tabelle werden die verfügbaren Aktionen erläutert.
Ursprungs-Auswahlen origin-selectors
Sie können das AEM-CDN nutzen, um Traffic an verschiedene Backends zu leiten, einschließlich Adobe-fremder Anwendungen (möglicherweise pro Pfad oder Subdomain).
Konfigurationsbeispiel:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
originSelectors:
rules:
- name: example-com
when: { reqProperty: path, like: /proxy-me* }
action:
type: selectOrigin
originName: example-com
# useCache: false
origins:
- name: example-com
domain: www.example.com
# ip: '1.1.1.1'
# forwardHost: true
# forwardCookie: true
# forwardAuthorization: true
# timeout: 20
Aktionen
In der folgenden Tabelle wird die verfügbare Aktion erläutert.
Ursprünge
Verbindungen zu Ursprüngen sind nur SSL-Verbindungen und verwenden Port 443.
Client-seitige Umleitungen client-side-redirectors
aemcs-cdn-config-adopter@adobe.com
und beschreiben Sie Ihren Anwendungsfall.Sie können Regeln für die Client-seitige Weiterleitung für 301, 302 und ähnliche Client-seitige Weiterleitungen verwenden. Wenn eine Regel übereinstimmt, antwortet das CDN mit einer Statuszeile, die den Status-Code und die Meldung enthält (z. B. HTTP/1.1 301 Permanent verschoben), sowie mit dem Speicherort-Kopfzeilen-Satz.
Sowohl absolute als auch relative Speicherorte mit festen Werten sind zulässig.
Beachten Sie, dass die kumulative Größe der Konfigurationsdatei, einschließlich Traffic-Filterregeln, 100 KB nicht überschreiten darf.
Konfigurationsbeispiel:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
experimental_redirects:
rules:
- name: redirect-absolute
when: { reqProperty: path, equals: "/page.html" }
action:
type: redirect
status: 301
location: https://example.com/page
- name: redirect-relative
when: { reqProperty: path, equals: "/anotherpage.html" }
action:
type: redirect
location: /anotherpage