Nieprawidłowa zasada dotycząca pamięci podręcznej

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Konfiguruje sposób usuwania wartości z pamięci podręcznej.

Ta zasada jest przeznaczona do ogólnego krótkotrwałego buforowania. Jest używana w połączeniu z zasadą Populate Cache (do zapisywania wpisów) i zasadą Lookup Cache (do odczytywania wpisów w pamięci podręcznej).

Informacje o buforowaniu odpowiedzi z zasobów backendu znajdziesz w zasadzie Response Cache.

Dokumentacja elementów

Poniżej znajdziesz listę elementów, które możesz skonfigurować w tej zasadzie.

<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>

Atrybuty elementu <InvalidateCache>

W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślny Obecność
name

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekracza 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName> do oznaczenia zasady jako edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To normalne w przypadku większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Opcjonalnie
enabled

Aby egzekwować zasadę, ustaw wartość true.

Aby wyłączyć zasadę, ustaw wartość false. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

fałsz Wycofano

&lt;DisplayName&gt; element

Używaj oprócz atrybutu name do oznaczania zasady w edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślny

Nie dotyczy

Jeśli pominiesz ten element, atrybut name zasady otrzyma wartość .

Obecność Opcjonalnie
Typ Ciąg znaków

Element <CacheContext>/<APIProxyName>

Określa nazwę aplikacji, która dodała wpis do pamięci podręcznej.

<APIProxyName>application_that_added_the_entry</APIProxyName>

Atrybuty

Atrybut Opis Domyślny Obecność Typ
ref Zmienna z nazwą aplikacji. Nie dotyczy Opcjonalny Ciąg znaków

Element <CacheContext>

Określa, jak utworzyć klucz pamięci podręcznej, gdy nie określono wartości elementu Prefix, lub jak wyczyścić wpisy w pamięci podręcznej dodane przez inne proxy interfejsu API.

<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>

Służy do tworzenia klucza CacheKey. Gdy do czyszczenia wpisów w pamięci podręcznej dodanych przez inne proxy interfejsu API nie jest używany prefiks klucza CacheKey (czyli prefiks niestandardowy), wartości APIProxyName, ProxyName i TargetName są obowiązkowe.

Element <CacheKey>

Konfiguruje unikalny wskaźnik do fragmentu danych przechowywanego w pamięci podręcznej.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Domyślny:

Nie dotyczy

Obecność:

Wymagane

Typ:

Nie dotyczy

<CacheKey> tworzy nazwę każdego fragmentu danych przechowywanego w pamięci podręcznej.

W czasie działania wartości <KeyFragment> są poprzedzane wartością elementu <Scope> lub wartością <Prefix>. Na przykład poniższy kod spowoduje utworzenie klucza pamięci podręcznej UserToken__apiAccessToken__<value_of_client_id>:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

Elementu <CacheKey> używasz w połączeniu z <Prefix> i <Scope>. Więcej informacji znajdziesz w artykule Praca z kluczami pamięci podręcznej.

Element <CacheResource>

Określa pamięć podręczną, w której mają być przechowywane wiadomości.

Jeśli ta zasada (i odpowiadające jej zasady PopulateCache i LookupCache) korzysta z dołączonej współdzielonej pamięci podręcznej, całkowicie pomiń ten element.

<CacheResource>cache_to_use</CacheResource>

Domyślny:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Więcej informacji o konfigurowaniu pamięci podręcznych znajdziesz w artykule Tworzenie i edytowanie pamięci podręcznej środowiska .

Element <CacheKey>/<KeyFragment>

Określa wartość, która ma być uwzględniana w kluczu pamięci podręcznej, tworząc przestrzeń nazw do dopasowywania żądań do odpowiedzi z pamięci podręcznej.

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

Domyślny:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Nie dotyczy

Może to być klucz (statyczna nazwa, którą podasz) lub wartość (dynamiczny wpis ustawiony przez odwołanie się do zmiennej). Wszystkie określone fragmenty (plus prefiks) są łączone w celu utworzenia klucza pamięci podręcznej.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

Elementu <KeyFragment> używasz w połączeniu z <Prefix> i <Scope>. Więcej informacji znajdziesz w artykule Praca z kluczami pamięci podręcznej.

Atrybuty

Atrybut Opis Domyślny Obecność Typ
ref Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera a wartość literału. Nie dotyczy Opcjonalny Ciąg znaków

Element <CacheKey>/<Prefix>

Określa wartość, która ma być używana jako prefiks klucza pamięci podręcznej.

<Prefix>prefix_string</Prefix>

Domyślny:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Użyj tej wartości zamiast <Scope>, gdy chcesz określić własną wartość zamiast wartości wyliczanej <Scope>. Jeśli jest zdefiniowany, <Prefix> poprzedza wartość klucza pamięci podręcznej w przypadku wpisów zapisywanych w pamięci podręcznej. Wartość elementu <Prefix> zastępuje wartość elementu <Scope>.

Elementu <Prefix> używasz w połączeniu z <CacheKey> i <Scope>. Więcej informacji znajdziesz w artykule Praca z kluczami pamięci podręcznej.

Element <CacheContext>/<ProxyName>

Określa nazwę proxy, dla którego dane zostały zapisane w pamięci podręcznej.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

Domyślny:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność Typ
ref Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera a wartość literału. Nie dotyczy Opcjonalny Ciąg znaków

Element <PurgeChildEntries>

true – usuwa wpisy w pamięci podręcznej, które mają wartość ustawioną przez element <KeyFragment> skonfigurowany dla tej zasady. Wartości w innych częściach klucza pamięci podręcznej, np. w elementach <Prefix>, nie są brane pod uwagę.

Pamiętaj, że element <KeyFragment> musi być określony. Jeśli tak nie jest, ustawienie wartości true dla <PurgeChildEntries> może spowodować usunięcie wszystkich wpisów w pamięci podręcznej.

Unieważnienie wszystkich wpisów w pamięci podręcznej o tej samej wartości fragmentu klucza może być przydatnym sposobem na jednoczesne usunięcie wielu powiązanych wpisów.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

Domyślny:

fałsz

Obecność:

Opcjonalny

Typ:

Wartość logiczna

Element <Scope>

Wyliczenie używane do tworzenia prefiksu klucza pamięci podręcznej, gdy element <Prefix> nie jest podany w elemencie <CacheKey>.

<Scope>scope_enumeration</Scope>

Domyślny:

„Exclusive”

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Ustawienie <Scope> określa klucz pamięci podręcznej, który jest poprzedzany zgodnie z wartością <Scope>. Na przykład klucz pamięci podręcznej będzie miał następującą postać, gdy zakres jest ustawiony na Exclusive:

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

Jeśli w elemencie <CacheKey> znajduje się element <Prefix>, zastępuje on wartość elementu <Scope>. Prawidłowe wartości to wyliczenia podane poniżej.

Elementu <Scope> używasz w połączeniu z <CacheKey> i <Prefix>. Więcej informacji znajdziesz w artykule Praca z kluczami pamięci podręcznej.

Dopuszczalne wartości

Wartość zakresu Opis
Global

Klucz pamięci podręcznej jest współdzielony przez wszystkie proxy interfejsu API wdrożone w środowisku. Klucz pamięci podręcznej jest poprzedzany w postaci orgName __ envName __.

Jeśli zdefiniujesz wpis <CacheKey> z elementem <KeyFragment> apiAccessToken i zakresem <Global>, każdy wpis będzie przechowywany jako orgName__envName__apiAccessToken, a następnie serializowana wartość tokena dostępu. W przypadku proxy interfejsu API wdrożonego w środowisku o nazwie „test” w organizacji o nazwie „apifactory” tokeny dostępu będą przechowywane pod następującym kluczem pamięci podręcznej: apifactory__test__apiAccessToken.

Application

Nazwa proxy interfejsu API jest używana jako prefiks.

Klucz pamięci podręcznej jest poprzedzany w postaci orgName__envName__applicationName.

Proxy

Konfiguracja ProxyEndpoint jest używana jako prefiks.

Klucz pamięci podręcznej jest poprzedzany w postaci orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName .

Target

Konfiguracja TargetEndpoint jest używana jako prefiks.

Klucz pamięci podręcznej jest poprzedzany w postaci orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName .

Exclusive

Domyślny. Jest to najbardziej szczegółowy zakres, dlatego minimalizuje ryzyko kolizji przestrzeni nazw w danej pamięci podręcznej.

Prefiks ma jedną z 2 postaci:

  • Jeśli zasada jest dołączona do przepływu ProxyEndpoint, prefiks ma postać ApiProxyName_ProxyEndpointName.
  • Jeśli zasada jest dołączona do TargetEndpoint, prefiks ma postać ApiProxyName_TargetName.

Klucz pamięci podręcznej jest poprzedzany w postaci orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

Na przykład pełny ciąg znaków może wyglądać tak:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Element <CacheContext>/<TargetName>

Określa nazwę docelowego punktu końcowego, dla którego dane zostały zapisane w pamięci podręcznej.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

Domyślny:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność Typ
ref Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera a wartość literału. Nie dotyczy Opcjonalny Ciąg znaków

Zastosowanie

Ogólne buforowanie za pomocą zasad Populate Cache, LookupCache i InvalidateCache korzysta z skonfigurowanej przez Ciebie pamięci podręcznej lub współdzielonej pamięci podręcznej, która jest domyślnie dołączona. W większości przypadków podstawowa współdzielona pamięć podręczna powinna spełniać Twoje potrzeby. Aby używać tej pamięci podręcznej, po prostu pomiń element <CacheResource>.

Więcej informacji o konfigurowaniu pamięci podręcznych znajdziesz w artykule Tworzenie i edytowanie pamięci podręcznej środowiska . Więcej informacji o podstawowym magazynie danych znajdziesz w artykule Wewnętrzne działanie pamięci podręcznej.

Kody błędów

W tej sekcji opisujemy komunikaty o błędach i zmienne przepływu ustawiane, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły błędów dla serwera proxy. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Prefiks kodu błędu

Nie dotyczy

Błędy w czasie wykonywania

Ta zasada nie powoduje błędów podczas działania.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidCacheResourceReference Ten błąd występuje, jeśli element <CacheResource> w zasadzie InvalidateCache jest ustawiony na nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
CacheNotFound Ten błąd występuje, jeśli pamięć podręczna wymieniona w komunikacie o błędzie nie została utworzona w konkretnym komponencie procesora wiadomości.

Zmienne błędów

Nie dotyczy

Przykładowa odpowiedź na błąd

Nie dotyczy