Konfigurera trafik vid leveransnätverket cdn-configuring-cloud
AEM as a Cloud Service har en samling funktioner som kan konfigureras på CDN som hanteras av Adobe lager som ändrar typen av inkommande eller utgående svar. Följande regler, som beskrivs i detalj på den här sidan, kan deklareras för att uppnå följande beteende:
- Begär omformningar - ändra aspekter av inkommande begäranden, inklusive rubriker, sökvägar och parametrar.
- Svarsomvandlingar - ändra rubriker som är på väg tillbaka till klienten (till exempel en webbläsare).
- Omdirigeringar på klientsidan - utlöser en omdirigering till webbläsaren. Den här funktionen är ännu inte tillgänglig för GA, men för tidiga användare.
- Väljare för ursprung - proxy till en annan bakgrund.
CDN kan även konfigurera trafikfilterregler (inklusive WAF), som styr vilken trafik som tillåts eller nekas av CDN. Den här funktionen har redan släppts och du kan läsa mer om den i Trafikfilterregler inklusive WAF-regler sida.
Om CDN inte kan kontakta sitt ursprung kan du dessutom skriva en regel som refererar till en egen felsida (som sedan återges). Läs mer om detta i Konfigurera CDN-felsidor artikel.
Alla dessa regler, som deklareras i en konfigurationsfil i källkontrollen, distribueras med Konfigurationspipeline för Cloud Manager. Tänk på att den kumulativa storleken på konfigurationsfilen, inklusive trafikfilterregler, inte får överstiga 100 kB.
Utvärderingsordning order-of-evaluation
De olika funktioner som nämns ovan utvärderas i följande sekvens:
Inställningar initial-setup
Innan du kan konfigurera trafik på leveransnätverket måste du göra följande:
- Skapa den här mappen och filstrukturen i den översta mappen i Git-projektet:
config/
cdn.yaml
-
The
cdn.yaml
konfigurationsfilen ska innehålla både metadata och reglerna som beskrivs i exemplen nedan. Thekind
parametern ska anges tillCDN
och versionen bör anges till schemaversionen, som för närvarande är1
. -
Skapa en riktad distributionskonfigurationspipeline i Cloud Manager. Se konfigurera produktionspipelines och konfigurera icke-produktionsrörledningar.
Anteckningar
- De lokala lagringsplatserna stöder för närvarande inte konfigurationsflödet.
- Du kan använda
yq
för att lokalt validera YAML-formateringen i konfigurationsfilen (till exempelyq cdn.yaml
).
Syntax configuration-syntax
Regeltyperna i avsnitten nedan har en gemensam syntax.
En regel refereras av ett namn, en villkorlig"when-sats" och åtgärder.
När-satsen avgör om en regel ska utvärderas, baserat på egenskaper som domän, sökväg, frågesträngar, rubriker och cookies. Syntaxen är densamma för alla regeltyper. Mer information finns i Villkorsstrukturavsnitt i artikeln Traffic Filter Rules.
Detaljerna för åtgärdsnoden skiljer sig åt mellan olika regeltyper och beskrivs i de enskilda avsnitten nedan.
Begär omformningar request-transformations
Regler för omformning av begäranden gör att du kan ändra inkommande begäranden. Reglerna har stöd för att ställa in, ta bort och ändra sökvägar, frågeparametrar och rubriker (inklusive cookies) baserat på olika matchningsvillkor, inklusive reguljära uttryck. Du kan också ange variabler som du senare kan referera till i utvärderingssekvensen.
Användningsexempel varierar och inkluderar URL-omskrivningar för att förenkla programmet eller mappa äldre URL-adresser.
Som vi nämnt tidigare finns det en storleksbegränsning för konfigurationsfilen, så organisationer med större krav bör definiera regler i apache/dispatcher
lager.
Konfigurationsexempel:
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: ""
Åtgärder
I tabellen nedan beskrivs de tillgängliga åtgärderna.
Åtgärder kan knytas ihop. Till exempel:
actions:
- type: transform
reqProperty: path
op: replace
match: \.html$
replacement: ""
- type: transform
reqProperty: path
op: tolower
Variabel variables
Du kan ange variabler under begärandeomformningen och sedan referera till dem senare i utvärderingssekvensen. Se utvärderingsordning för mer information.
Konfigurationsexempel:
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
Svarsomvandlingar response-transformations
Med reglerna för svarsomvandling kan du ange och ta bort rubriker för CDN:ens utgående svar. Se även exemplet ovan för att referera till en variabel som tidigare angetts i en omformningsregel för begäran.
Konfigurationsexempel:
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
Åtgärder
I tabellen nedan beskrivs de tillgängliga åtgärderna.
Väljare för ursprung origin-selectors
Du kan använda det AEM CDN för att dirigera trafik till olika serverdelar, inklusive program som inte kommer från Adobe (kanske per sökväg eller underdomän).
Konfigurationsexempel:
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
Åtgärder
Tabellen nedan förklarar den tillgängliga åtgärden.
Original
Anslutningar till originalen är endast SSL och använder port 443.
Omdirigeringar på klientsidan client-side-redirectors
aemcs-cdn-config-adopter@adobe.com
och beskriva hur ni använder er.Du kan använda omdirigeringsregler på klientsidan för 301, 302 och liknande omdirigeringar på klientsidan. Om en regel matchar svarar CDN med en statusrad som innehåller statuskoden och meddelandet (till exempel HTTP/1.1 301 Flyttad permanent), samt platshuvuduppsättningen.
Både absoluta och relativa platser med fasta värden tillåts.
Tänk på att den kumulativa storleken på konfigurationsfilen, inklusive trafikfilterregler, inte får överstiga 100 kB.
Konfigurationsexempel:
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