<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
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, die Sie konfigurieren können, einen zuverlässigen Weg, um dieselben Daten zu erhalten. 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 <CacheKey>
-Element konfiguriert, wie Edge eine eindeutige Kennung erstellt
(ein Schlüssel) für jeden erstellten Cache-Eintrag. Wenn Edge den im Cache gespeicherten Wert abruft, verwendet er den Cache
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 einen Wert von hello__world
zur Verwendung im Cache-Schlüssel:
<CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
Sie können Variablenwerte auch in einem Cache-Schlüssel verwenden, indem Sie auf die Variable in einem <KeyFragment>
-Element verweisen, wie hier gezeigt:
<KeyFragment ref="variable_name"/>
So sorgen Sie zum Beispiel dafür, dass der Cache-Schlüsselwert den Content-Type der Anfragenachricht enthält:
<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 aus der Verwendung des Ausschließlich-Werts für <Scope>
erstellt wurde, sieht beispielsweise so aus:
apifactory__test__weatherapi__16__default__apiAccessToken