Sie lesen die Dokumentation zu Apigee X.
Apigee Edge-Dokumentation aufrufen
Konfiguriert, wie im Cache gespeicherte Werte zur Laufzeit geschrieben werden sollen.
Die PopulateCache-Richtlinie dient zum Schreiben von Einträgen in einem kurzfristigen Cache für allgemeine Zwecke. Sie wird in Verbindung mit der LookupCache-Richtlinie (zum Lesen von Cache-Einträgen) und der InvalidateCache-Richtlinie (zum Entwerten von Einträgen) verwendet.
Informationen zum Caching der Antworten von Back-End-Ressourcen finden Sie unter Antworts-Cache-Richtlinie.
Elementverweis
Im Folgenden sind die über diese Richtlinie konfigurierbaren Werte aufgeführt.
<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1"> <DisplayName>Populate Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSeconds>300</TimeoutInSeconds> </ExpirySettings> <Source>flowVar</Source> </PopulateCache>
<PopulateCache>-Attribute
In der folgenden Tabelle werden Attribute beschrieben, die für alle übergeordneten Richtlinienelemente gelten:
Attribut | Beschreibung | Standard | Presence |
---|---|---|---|
name |
Der interne Name der Richtlinie. Der Wert des Attributs Optional können Sie das Element |
– | Erforderlich |
continueOnError |
Legen Sie Legen Sie |
false | Optional |
enabled |
Setzen Sie den Wert auf Legen Sie |
true | Optional |
async |
Dieses Attribut wurde verworfen. |
false | Verworfen |
<DisplayName>-Element
Wird zusätzlich zum Attribut name
verwendet, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen Namen in einer natürlichen Sprache zu versehen.
<DisplayName>Policy Display Name</DisplayName>
Standard |
– Wenn Sie dieses Element weglassen, wird der Wert des Namensattributs |
---|---|
Presence | Optional |
Typ | String |
<CacheKey>-Element
Konfiguriert einen eindeutigen Zeiger auf ein im Cache gespeichertes Datenelement.
Cache-Schlüssel sind auf eine Größe von 2 KB begrenzt.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
Standard: |
– |
Präsenz: |
Erforderlich |
Typ: |
– |
<CacheKey>
erstellt den Namen jedes Datenelements, das im Cache gespeichert ist.
Zur Laufzeit werden <KeyFragment>
-Werte entweder dem <Scope>
-Elementwert oder dem <Prefix>
-Wert vorangestellt. Das folgende Beispiel führt zu einem Cacheschlüssel von UserToken__apiAccessToken__
<value_of_client_id>:
<CacheKey> <Prefix>UserToken</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey>
Sie verwenden das <CacheKey>
-Element zusammen mit <Prefix>
und <Scope>
. Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.
<CacheResource>-Element
Gibt den Cache an, in dem Nachrichten gespeichert werden sollen.
Lassen Sie dieses Element vollständig weg, wenn diese Richtlinie (und Ihre entsprechenden LookupCache- und InvalidateCache-Richtlinien) den enthaltenen freigegebenen Cache verwenden.
<CacheResource>cache_to_use</CacheResource>
Standard: |
– |
Präsenz: |
Optional |
Typ: |
String |
Weitere Informationen zum Konfigurieren von Caches finden Sie unter Caching für allgemeine Zwecke.
<CacheKey>/<KeyFragment>-Element
Gibt einen Wert an, der im Cache-Schlüssel enthalten sein muss, um einen Namespace für den Abgleich von Anfragen mit im Cache gespeicherten Antworten zu erstellen.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
Standard: |
– |
Präsenz: |
Optional |
Typ: |
– |
Dabei kann es sich um einen Schlüssel (einen von Ihnen angegebenen statischen Namen) oder um einen Wert (einen dynamischen Eintrag, der durch den Verweis auf eine Variable bestimmt wird) handeln. Alle angegebenen Fragmente werden (plus Präfix) verkettet, um den Cache-Schlüssel zu erstellen.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
Sie verwenden das <KeyFragment>
-Element zusammen mit <Prefix>
und <Scope>
. Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.
Attribute
Attribut | Typ | Default | Erforderlich | Beschreibung |
---|---|---|---|---|
Ref | String | Nein |
Die Variable, aus der der Wert abgerufen wird. Sollte nicht verwendet werden, wenn dieses Element einen Literalwert enthält. |
<CacheKey>/<Prefix>-Element
Gibt den Wert an, der als Cache-Schlüsselpräfix verwendet werden soll.
<Prefix>prefix_string</Prefix>
Standard: |
– |
Präsenz: |
Optional |
Typ: |
String |
Verwenden Sie diesen Wert anstelle von <Scope>
, wenn Sie einen eigenen Wert anstelle eines <Scope>
-Aufzählungswerts angeben möchten. Wenn definiert, definiert <Prefix>
den Cache-Schlüsselwert für Einträge, die in den Cache geschrieben werden. <Prefix>
-Elementwerte überschreiben <Scope>
-Elementwerte.
Sie verwenden das <Prefix>
-Element zusammen mit <CacheKey>
und <Scope>
. Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.
<ExpirySettings>-Element
Gibt an, wann ein Cache-Eintrag ablaufen soll. Wenn vorhanden, überschreibt <TimeoutInSeconds>
sowohl <TimeOfDay>
als auch <ExpiryDate>
.
<ExpirySettings> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> </ExpirySettings>
Standard: |
– |
Präsenz: |
Erforderlich |
Typ: |
– |
<ExpirySettings>/<ExpiryDate>-Element
Gibt das Datum an, an dem ein Cache-Eintrag ablaufen soll. Verwenden Sie das Format mm-dd-yyyy
.
<ExpirySettings> <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate> </ExpirySettings>
Standard: |
– |
Präsenz: |
Optional |
Typ: |
String |
Attribute
Attribut | Beschreibung | Standardeinstellung | Präsenz | Typ |
---|---|---|---|---|
Ref |
Die Variable, aus der der Wert abgerufen wird. Sollte nicht verwendet werden, wenn dieses Element einen Literalwert enthält. |
– | Optional | String |
<ExpirySettings>/<TimeOfDay>-Element
Die Tageszeit, zu der ein Cache-Eintrag ablaufen soll. Verwenden Sie das Format HH:mm:ss
. Wenn dieses Element vorhanden ist, wird <TimeOfDay>
vom gleichgeordneten Element <TimeoutInSeconds>
überschrieben.
Geben Sie die Tageszeit im Format HH:mm:ss ein. Dabei steht HH für die Stunde im 24-Stunden-Format. Beispiel: 14:30:00 für 14:30 Uhr am Nachmittag.
In Bezug auf die Tageszeit variieren die Standardsprache und -zeitzone je nachdem, wo der Code ausgeführt wird. Das ist bei der Konfiguration der Richtlinie nicht bekannt.
<ExpirySettings> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
Standard: |
– |
Präsenz: |
Optional |
Typ: |
String |
Attribute
Attribut | Beschreibung | Standardeinstellung | Präsenz | Typ |
---|---|---|---|---|
Ref | Variable mit Ablaufzeitwert. | – | Optional | String |
<ExpirySettings>/<TimeoutInSec>-Element
Die Anzahl der Sekunden, nach denen ein Cache-Eintrag abläuft.
<ExpirySettings>/<TimeoutInSeconds>-Element
Die Anzahl der Sekunden, nach denen ein Cache-Eintrag abläuft. Wenn dieses Element vorhanden ist, überschreibt dieses Element seine gleichgeordneten Elemente <TimeOfDay>
und <ExpiryDate>
.
<ExpirySettings> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> </ExpirySettings>
Hinweis: Geben Sie einen Standardwert für die Zeitüberschreitung an, der verwendet werden soll, wenn "ref" keinen Wert aus der duration_variable
empfängt.
Standard: |
– |
Präsenz: |
Optional |
Typ: |
String |
Attribute
Attribut | Beschreibung | Standardeinstellung | Präsenz | Typ |
---|---|---|---|---|
Ref | Variable mit Zeitüberschreitungswert. |
–
|
Optional | String |
<Scope>-Element
Aufzählung, die zum Erstellen eines Präfixes für einen Cache-Schlüssel verwendet wird, wenn das Element <Prefix>
nicht im Element <CacheKey>
angegeben ist.
<Scope>scope_enumeration</Scope>
Standard: |
"Exklusiv" |
Präsenz: |
Optional |
Typ: |
String |
Mit der Einstellung <Scope>
wird ein Cache-Schlüssel festgelegt, dem gemäß des Werts <Scope>
etwas vorangestellt wird. Ein Cache-Schlüssel hat beispielsweise folgende Form, wenn der Bereich auf Exclusive
eingestellt ist:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]
Ist in <CacheKey>
ein <Prefix>
-Element vorhanden, hat dies vor einem <Scope>
-Elementwert Vorrang. Gültige Werte sind folgende Aufzählungen.
Sie verwenden das <Scope>
-Element zusammen mit <CacheKey>
und <Prefix>
. Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.
Zulässige Werte
Global |
Der Cache-Schlüssel wird für alle API-Proxys freigegeben, die in der Umgebung bereitgestellt werden. Der Cache-Schlüssel wird im Format orgName __ envName vorangestellt. Wenn Sie einen |
Application |
Der API-Proxyname wird als Präfix verwendet. Der Cache-Schlüssel wird im Format orgName__envName__apiProxyName vorangestellt. |
Proxy |
Die ProxyEndpoint-Konfiguration wird als Präfix verwendet. Der Cache-Schlüssel wird im Format orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName vorangestellt. |
Target |
Die TargetEndpoint-Konfiguration wird als Präfix verwendet. Der Cache-Schlüssel wird im Format orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName vorangestellt. |
Exclusive |
Standard. Dies ist die spezifischste Zuordnung und bedingt daher ein minimales Risiko in Sachen Namespace-Konflikten in einem bestimmten Cache. Das Präfix gibt es in zwei Formen:
Der Cache-Schlüssel wird im Format orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName angehängt. Der vollständige String kann so aussehen: apifactory__test__weatherapi__16__default__apiAccessToken |
<Source>-Element
Gibt die Variable an, deren Wert in den Cache geschrieben werden soll.
<Source>source_variable</Source>
Standard: |
– |
Präsenz: |
Erforderlich |
Typ: |
String |
Verwendungshinweise
Verwenden Sie diese Richtlinie für das allgemeine Caching im Cache. Zur Laufzeit schreibt die Richtlinie <PopulateCache>
Daten aus der Variablen, die Sie im Element <Source>
angegeben haben, in den Cache, den Sie im Element <CacheResource>
angegeben haben. Sie können die Elemente <CacheKey>
, <Scope>
und <Prefix>
verwenden, um einen Schlüssel anzugeben, mit dem Sie den Wert aus der Richtlinie <LookupCache>
abrufen können. Mit dem <ExpirySettings>
-Element legen Sie fest, wann der im Cache gespeicherte Wert ablaufen soll.
Das Caching für allgemeine Zwecke mit der PopulateCache-Richtlinie, der LookupCache-Richtlinie und der InvalidateCache-Richtlinie verwendet entweder einen von Ihnen konfigurierten Cache oder einen freigegebenen Cache, der standardmäßig berücksichtigt wird. In den meisten Fällen sollte der zugrunde liegende freigegebene Cache Ihren Anforderungen genügen. Um diesen Cache zu verwenden, lassen Sie einfach das <CacheResource>
-Element weg.
Cache-Limits: Es gelten verschiedene Cache-Limits, z. B. Name und Wertgröße, Gesamtzahl der Caches, Anzahl der Elemente in einem Cache und Ablauf.
Weitere Informationen zum zugrunde liegenden Datenspeicher finden Sie unter Interne Strukturen des Cache.
Informationen zur Cache-Verschlüsselung
Apigee und Apigee Hybrid (Version 1.4 und höher): Cache- und KVM-Daten werden immer verschlüsselt.
Fehlercodes
In diesem Abschnitt werden die zurückgegebenen Fehlercodes und Fehlermeldungen beschrieben, die von Apigee festgelegt werden, wenn die Richtlinie einen Fehler auslöst. Diese Informationen sind wichtig, wenn Sie Fehlerregeln zur Verarbeitung von Fehlern entwickeln. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen und Fehler beheben.
Laufzeitfehler
Diese Fehler können bei Ausführung der Richtlinie auftreten.
Fehlercode | HTTP-Status | Tritt auf, wenn Folgendes eintritt |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 |
Ein Eintrag kann nicht im Cache gespeichert werden. Das im Cache gespeicherte Nachrichtenobjekt ist keine Instanz einer serialisierbaren Klasse. |
Bereitstellungsfehler
Diese Fehler können auftreten, wenn Sie einen Proxy mit dieser Richtlinie bereitstellen.
Fehlername | Ursache | Diverse Fehlerkorrekturen |
---|---|---|
InvalidCacheResourceReference |
Dieser Fehler tritt auf, wenn für das Element <CacheResource> in der Richtlinie PopulateCache ein Name angegeben ist, der in der Umgebung, in der der API-Proxy bereitgestellt wird, nicht vorhanden ist. |
build |
CacheNotFound |
Der im Element <CacheResource> angegebene Cache ist nicht vorhanden. |
build |
Fehlervariablen
Diese Variablen werden festgelegt, wenn die Richtlinie einen Fehler auslöst. Weitere Informationen finden sich unter Was Sie über Richtlinienfehler wissen müssen.
Variablen | Wo | Beispiel |
---|---|---|
fault.name="fault_name" |
fault_name ist der Name des Fehlers, der in der obigen Tabelle Laufzeitfehler aufgeführt ist. Der Fehlername ist der letzte Teil des Fehlercodes. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name ist der benutzerdefinierte Name der Richtlinie, die den Fehler ausgelöst hat. | populatecache.POP-CACHE-1.failed = true |
Beispiel für eine Fehlerantwort
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Beispiel für eine Fehlerregel
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>