Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Wenn Sie Cache-Richtlinien verwenden, können Sie die Eindeutigkeit von im Cache gespeicherten Wertschlüsseln durch Konfigurieren von Cache Schlüsseln gewährleisten. Ein Cache-Schlüssel bietet zusammen mit anderen konfigurierbaren Werten eine zuverlässige Möglichkeit, dieselben Daten abzurufen, die Sie eingegeben haben. Sie verwenden Cache-Schlüssel mit den Richtlinien Populate Cache, LookupCache, InvalidateCache und Response Cache
Die Werte der Konfigurationselemente <CacheKey>/<KeyFragment>, <Scope> und <Prefix> werden verkettet, um eine Kennung zu erstellen, die mit dem Wert verknüpft wird. in den Cache legen. Mit derselben Konfiguration rufen Sie den Wert ab.
Mit den folgenden Elementen der Cache-Konfigurationskonfiguration können Sie einen Cache-Schlüssel erstellen:
| Cache-Konfigurationselement | Beschreibung |
|---|---|
<CacheKey>/<KeyFragment> |
Verwende <CacheKey> <KeyFragment>-Elemente, um eine eindeutige Kennung für Cache-Einträge anzugeben. KeyFragment-Werte können statische Literale sein oder aus Variablen festgelegt werden. |
<Scope> oder <Prefix> |
Mit den Elementen <Scope> oder <Prefix> können Sie weitere Namespace-Cache-Schlüssel speichern. <Scope> gibt eine Liste vordefinierter Werte an.
Mit dem Element <Prefix> wird <Scope> durch einen Wert Ihrer Wahl überschrieben. |
Diese Werte sind in der folgenden Form verkettet, wobei die Werte <Scope> oder <Prefix> durch Schlüsselwerte voneinander getrennt sind.
Mehrere KeyFragment-Werte werden außerdem durch doppelte Unterstriche getrennt.
scope | prefix__keyfragment[__keyfragment]
Mit der Antwort-Cache -Richtlinie können Sie diesem Cache-Schlüssel optional Werte aus dem Antwort-Header "Akzeptieren" hinzufügen.
<CacheKey> verwenden
Das Element <CacheKey> konfiguriert, wie Edge für jeden erstellten Cache-Eintrag eine eindeutige Kennung
(einen Schlüssel) erstellt. Wenn Edge den im Cache gespeicherten Wert abruft, wird der Cache
Schlüssel verwendet, um den richtigen Wert zu finden. In der ResponseCache-Richtlinie definiert eine Konfiguration den Schlüssel
für das Caching und den Abruf. In den Richtlinien „PopulateCache“und „LookupCache“ muss jede Richtlinie identische <CacheKey>-Elemente haben, damit ein aus dem Cache abgerufener Wert einem hier festgelegten Wert entspricht.
Das Element <CacheKey> kann mehrere <KeyFragment>-Elemente enthalten. Zur Laufzeit werden die von
<KeyFragment> Elementen angegebenen Werte mit zwei Unterstrichen verkettet, um einen Teil des Cache-Schlüssels zu bilden.
Die folgende Konfiguration erstellt beispielsweise den Wert hello__world für die Verwendung
im Cache-Schlüssel:
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey>Sie können auch Variablenwerte in einem Cache-Schlüssel verwenden, indem Sie auf die Variable in einem
<KeyFragment> Element verweisen, wie hier gezeigt:
<KeyFragment ref="variable_name"/>
Wenn Sie beispielsweise den Content-Type der Anfragenachricht in den Cache-Schlüsselwert einbeziehen möchten, gehen Sie so vor:
<KeyFragment ref="request.header.Content-Type"/>
In der folgenden Konfiguration hat die Variable request.header.Content-Type den Wert application/json.
<CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
Dies führt zu einem Cache-Schlüssel, der mit apiAccessToken__application/json__bar endet.
Eine Liste der Variablen, die Sie verwenden können, finden Sie unter Variablenreferenz.
Cache-Schlüssel werden von Abfrageparametern abgeleitet
Mit Variablen wie "request.queryparam.<queryparam_name>" und "request.querystring", können Sie einen Cache-Schlüssel so konfigurieren, dass der Schlüssel Teile des Abfragestrings einer Anfrage enthält. Beispielsweise verwendet die folgende URL zwei Abfrageparameter – param1 und param2 –, die Sie in Ihrem Cache-Schlüssel verwenden können:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
Das <CacheKey>-Element kann diese Werte mit einer Konfiguration wie der folgenden enthalten:
<CacheKey>
<KeyFragment ref="request.queryparam.param1" />
<KeyFragment ref="request.queryparam.param2" />
<CacheKey>Zur Laufzeit würde der Cache-Schlüssel die Parameterwerte so verketten:
other_key_parts__value1__value2
Wenn Sie Variablen zum Einfügen von Werten aus Parametern verwenden, werden die Werte in der Reihenfolge verkettet, in der sie in der Elementreihenfolge <KeyFragment> aufgeführt werden. Beachten Sie außerdem, dass Edge nur diese Werte verwendet, auf die Sie speziell mit <KeyFragment>-Elementen verweisen. Wenn Ihre Suchparameterlisten variieren, werden die
Varianten im Cache-Schlüssel nicht berücksichtigt.
Alternativ können Sie die Variable request.querystring verwenden, die den gesamten String der
Parameter wortweise als Teil des Cache-Schlüssels einfügt. Beachten Sie, dass bei dieser Methode alle Parameter berücksichtigt werden. Wenn die Reihenfolge der Parameter jedoch von einer Anfrage zur nächsten variiert, ist der Schlüssel unterschiedlich. Mit anderen Worten, param1=value1¶m2=value2 und
param2=value2¶m1=value1 führen nicht zu demselben Cache-Schlüsselwert.
Eine Liste der Variablen, die Sie verwenden können, finden Sie unter Variablenreferenz.
Verwenden von <Scope> und <Prefix>
Die Elemente <Scope> und <Prefix> bieten die Möglichkeit, den Schlüssel mit einem Namespace-Präfix zu erweitern. Die Werte, die sie darstellen, werden Ihrem Cache-Schlüssel vorangestellt.
Das Element <Scope> wird standardmäßig verwendet. Dies ist eine Aufzählung, deren Werte von breit bis schmal sind, mit der niedrigsten Stufe. Dieser Standardwert wird verwendet, wenn Sie keinen anderen Wert angeben oder einen <Prefix>-Elementwert angeben. Sie können den Wert von <Scope> mit einem <Prefix>-Element überschreiben und einen benutzerdefinierten Wert für den Namespace festlegen.
Beispiel: Der <Scope>-Wert "Global" – der größte Bereich – steht für den Organisations- und Umgebungsnamen. Wenn Ihr Proxy in einer Organisation namens "mycompany" und in einer Umgebung namens "prod" bereitgestellt wird, lautet der resultierende vorangestellte Wert so:
| Konfiguration | Ergebnis |
|---|---|
<Scope>Global</Scope> |
mycompany__prod__. |
Wenn Sie den globalen Bereich mit dem oben definierten Cache-Schlüssel verwenden, sieht das Ergebnis so aus:
| Konfiguration | Ergebnis |
|---|---|
<Scope>Global</Scope>
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey> |
mycompany__prod__hello__world. |
Wie in der LookupCache-Richtlinie beschrieben, kann der Bereich so konfiguriert werden, dass die Genauigkeit von Global auf Ausschließlich erhöht wird. Ein ausschließlicher Bereich ist am spezifischsten und bedeutet daher das minimale Risiko von Namespace-Konflikten innerhalb eines bestimmten Caches. Jedem Cache-Eintrag mit einem ausschließlichen Bereich ist Folgendes im folgenden Format vorangestellt:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
Ein Cache-Schlüssel, der mit dem Wert „Ausschließlich“ für <Scope>
erstellt wurde, sieht beispielsweise so aus:
apifactory__test__weatherapi__16__default__apiAccessToken