InvalidateCache-Richtlinie

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Richtliniensymbol

Konfiguriert, wie die im Cache gespeicherten Werte aus dem Cache gelöscht werden.

Diese Richtlinie ist für die Anwendung beim allgemeinen, kurzzeitigen Caching vorgesehen. Sie wird in Verbindung mit der PopulateCache-Richtlinie und der LookupCache-Richtlinie (für das Lesen von Cache-Einträgen) verwendet.

Informationen zum Caching der Antworten von Backend-Ressourcen finden Sie unter ResponseCache-Richtlinie.

Diese Richtlinie ist eine erweiterbare Richtlinie und die Verwendung dieser Richtlinie kann je nach Apigee-Lizenz Auswirkungen auf die Kosten oder die Nutzung haben. Informationen zu Richtlinientypen und Auswirkungen auf die Nutzung finden Sie unter Richtlinientypen.

Elementverweis

Im Folgenden sind die über diese Richtlinie konfigurierbaren Werte aufgeführt.

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

<InvalidateCache>-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 name kann Buchstaben, Ziffern, Leerzeichen, Bindestriche, Unterstriche und Punkte enthalten. Dieser Wert darf 255 Zeichen nicht überschreiten.

Optional können Sie das Element <DisplayName> verwenden, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen Namen in einer natürlichen Sprache zu versehen.

Erforderlich
continueOnError

Legen Sie false fest, um einen Fehler zurückzugeben, wenn eine Richtlinie fehlschlägt. Dies ist für die meisten Richtlinien das erwartete Verhalten.

Legen Sie true fest, damit die Ablaufausführung auch nach dem Fehlschlagen einer Richtlinie fortgesetzt wird. Siehe auch:

false Optional
enabled

Setzen Sie den Wert auf true, um die Richtlinie zu erzwingen.

Legen Sie false fest, um die Richtlinie zu deaktivieren. Die Richtlinie wird nicht erzwungen, selbst wenn sie mit einem Ablauf verknüpft ist.

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 name der Richtlinie verwendet.

Presence Optional
Typ String

<CacheContext>/<APIProxyName>-Element

Gibt den Namen der Anwendung an, die den Cache-Eintrag hinzugefügt hat.

<APIProxyName>application_that_added_the_entry</APIProxyName>

Attribute

Attribut Beschreibung Standard Presence Typ
ref Variable mit dem Anwendungsnamen. Optional String

<CacheContext>-Element

Gibt an, wie ein Cache-Schlüssel erstellt wird, wenn kein Prefix-Elementwert angegeben ist, oder um Cache-Einträge zu löschen, die von einem anderen API-Proxy hinzugefügt wurden.

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

Wird zum Erstellen des CacheKey verwendet. Werte für APIProxyName, ProxyName und TargetName sind obligatorisch, wenn ein CacheKey-Präfix, also ein benutzerdefiniertes Präfix, nicht verwendet wird, um Cache-Einträge zu löschen, die von einem anderen API-Proxy hinzugefügt wurden.

<CacheKey>-Element

Konfiguriert einen eindeutigen Zeiger auf ein im Cache gespeichertes Datenelement.

<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 PopulateCache- und LookupCache-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 Allgemeines Caching.

<CacheKey>/<KeyFragment>-Element

Gibt einen Wert an, der im Cache-Schlüssel enthalten sein soll. Geben Sie eine Variable an, auf die nicht länger über das Attribut ref oder über einen festen Wert verwiesen werden soll.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Standard:

Präsenz:

Optional

Typ:

Zur Laufzeit erstellt Apigee den Cache-Schlüssel, indem der vom <Scope>-Element oder <Prefix>-Element abgerufene Wert einer Verkettung der aufgelösten Werte jedes <KeyFragment>-Elements vorangestellt wird. Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.

Attribute

Attribut Beschreibung Standard Presence Typ
Ref Die Variable, aus der der Wert abgerufen wird. Sollte nicht verwendet werden, wenn dieses Element einen Literalwert enthält. Optional String

<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

Ein <Prefix>-Element überschreibt jedes <Scope>-Element.

Zur Laufzeit erstellt Apigee den Cache-Schlüssel, indem der vom <Scope>-Element oder <Prefix>-Element abgerufene Wert einer Verkettung der aufgelösten Werte jedes <KeyFragment>-Elements vorangestellt wird. Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.

<CacheContext>/<ProxyName>-Element

Gibt den Namen des Proxys an, für den die Daten im Cache gespeichert wurden.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

Standard:

Präsenz:

Optional

Typ:

String

Attribute

Attribut Beschreibung Standard Presence Typ
Ref Die Variable, aus der der Wert abgerufen wird. Sollte nicht verwendet werden, wenn dieses Element einen Literalwert enthält. Optional String

<PurgeChildEntries>-Element

true, um Cache-Einträge dauerhaft zu löschen, die denselben <Prefix>-Wert haben, der für diese Richtlinie konfiguriert ist, auch wenn die PopulateCache-Richtlinien, die diese Elemente in den Cache geladen haben, auch verschiedene <KeyFragment>-Elemente verwendet haben.

Wenn Sie alle Cache-Einträge desselben Präfixwerts entwerten, können Sie mehrere zugehörige Einträge gleichzeitig dauerhaft löschen.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

Standard:

false

Präsenz:

Optional

Typ:

Boolesch

<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__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

Ist in <CacheKey> ein <Prefix>-Element vorhanden, hat dies vor einem <Scope>-Elementwert Vorrang. Gültige Werte für das <Scope>-Element werden unten angezeigt.

Weitere Informationen finden Sie unter Mit Cache-Schlüsseln arbeiten.

Zulässige Werte

Bereichswert Beschreibung
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 <CacheKey>-Eintrag mit dem <KeyFragment>-apiAccessToken und dem Bereich <Global> definieren, wird jeder Eintrag als orgName__envName__apiAccessToken gespeichert, gefolgt vom serialisierten Wert des Zugriffstokens. Für einen API-Proxy, der in einer Umgebung mit dem Namen "Test" in einer Organisation namens "apifactory" bereitgestellt wird, werden Zugriffstoken unter folgendem Cache-Schlüssel gespeichert: apifactory__test__apiAccessToken.

Application

Der API-Proxyname wird als Präfix verwendet.

Der Cache-Schlüssel hat das Format orgName__envName__applicationName.

Proxy

Die ProxyEndpoint-Konfiguration wird als Präfix verwendet.

Dem Cache-Schlüssel wird orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName vorangestellt.

Target

Die TargetEndpoint-Konfiguration wird als Präfix verwendet.

Dem Cache-Schlüssel wird orgName__envName__applicationName__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:

  • Wenn die Richtlinie an den Ablauf ProxyEndpoint angehängt wird, hat das Präfix das Format ApiProxyName_ProxyEndpointName.
  • Wenn die Richtlinie unter TargetEndpoint angehängt wird, hat das Präfix das Format ApiProxyName_TargetName.

Dem Cache-Schlüssel wird orgName__envName__applicationName__deployedREvisionNumber__proxyNameITargetName vorangestellt

Der vollständige String kann so aussehen:

apifactory__test__weatherapi__16__default__apiAccessToken
.

<CacheContext>/<TargetName>-Element

Gibt den Namen des Zielendpunkts an, für den die Daten im Cache gespeichert wurden.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

Standard:

Präsenz:

Optional

Typ:

String

Attribute

Attribut Beschreibung Standard Presence Typ
Ref Die Variable, aus der der Wert abgerufen wird. Sollte nicht verwendet werden, wenn dieses Element einen Literalwert enthält. Optional String

Verwendungshinweise

Das allgemeine Caching 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 Element <CacheResource> weg.

Weitere Informationen zum Konfigurieren von Caches finden Sie unter Allgemeines Caching. Weitere Informationen zum zugrunde liegenden Datenspeicher finden Sie unter Cache-Internals.

Fehlercodes

In diesem Abschnitt werden die Fehlermeldungen und Ablaufvariablen beschrieben, die festgelegt werden, wenn diese Richtlinie einen Fehler auslöst. Dieses Informationen sind wichtig, wenn Sie Fehlerregeln für einen Proxy entwickeln. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen und Fehler beheben.

Fehlercode-Präfix

Laufzeitfehler

Diese Richtlinie gibt keine Laufzeitfehler aus.

Bereitstellungsfehler

Diese Fehler können auftreten, wenn Sie einen Proxy mit dieser Richtlinie bereitstellen.

Fehlername Ursache Beheben
InvalidCacheResourceReference Dieser Fehler tritt auf, wenn für das Element <CacheResource> in der Richtlinie InvalidateCache ein Name angegeben ist, der in der Umgebung, in der der API-Proxy bereitgestellt wird, nicht vorhanden ist.
CacheNotFound Dieser Fehler tritt auf, wenn der in der Fehlermeldung erwähnte Cache nicht auf einer bestimmten Message Processor-Komponente erstellt wurde.

Fehlervariablen

Beispiel für eine Fehlerantwort