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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Określa sposób trwałego usuwania z pamięci podręcznej wartości z pamięci podręcznej.

Ta zasada jest przeznaczona do ogólnego użytku krótkoterminowego w pamięci podręcznej. Jest ona używana w połączeniu z zasadą Wypełnij pamięć podręczną (do zapisywania wpisów) i zasadą wyszukiwania pamięci podręcznej (do odczytywania wpisów pamięci podręcznej).

Informacje o buforowaniu odpowiedzi zasobów backendu znajdziesz w opisie zasady buforowania odpowiedzi.

Odwołanie do elementu

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

Tabela poniżej zawiera opis atrybutów wspólnych dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślne 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>, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw wartość false, aby zwracać błąd w przypadku niepowodzenia zasady. Jest to normalne działanie większości zasad.

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

false Opcjonalnie
enabled

Ustaw jako true, aby wymuszać zasadę.

Ustaw wartość false, aby wyłączyć tę zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie dołączona do procesu.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

false Wycofano

Element <DisplayName>

Użyj oprócz atrybutu name, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

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

Nie dotyczy

Jeśli pominiesz ten element, zostanie użyta wartość atrybutu name zasady.

Obecność Opcjonalnie
Typ Ciąg znaków

Element <CacheContext>/<APIProxyName>

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

<APIProxyName>application_that_added_the_entry</APIProxyName>

Atrybuty

Atrybut Opis Domyślne Obecność Typ
referencja Zmienna z nazwą aplikacji. Nie dotyczy Opcjonalnie Ciąg znaków

Element <CacheContext>

Określa, jak utworzyć klucz pamięci podręcznej, gdy wartość elementu Prefix nie jest określona, lub wyczyścić wpisy pamięci podręcznej dodane przez inny serwer 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. Wartości APIProxyName, ProxyName i elementu TargetName są wymagane, gdy prefiks CacheKey (czyli niestandardowy prefiks) nie jest używany do czyszczenia wpisów pamięci podręcznej dodanych przez inny serwer proxy interfejsu API.

Element <CacheKey>

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

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

Domyślnie:

Nie dotyczy

Obecność:

Wymagane

Typ:

Nie dotyczy

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

W czasie działania wartości <KeyFragment> są dołączane na początku wartości elementu <Scope> lub <Prefix>. Na przykład w poniższym przykładzie powstaje klucz 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 elementami <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.

Pomiń ten element, jeśli ta zasada (wraz z odpowiednimi zasadami PopulateCache i LookupCache) korzysta z dołączonej współdzielonej pamięci podręcznej.

<CacheResource>cache_to_use</CacheResource>

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

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

Element <CacheKey>/<KeyFragment>

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

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

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Nie dotyczy

Może to być klucz (wpisana przez Ciebie statyczna nazwa) lub wartość (dynamiczny wpis ustawiony przez odwoływanie się do zmiennej). Wszystkie określone fragmenty (plus prefiks) są połączone, aby utworzyć klucz pamięci podręcznej.

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

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

Atrybuty

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

Element <CacheKey>/<Prefiks>

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

<Prefix>prefix_string</Prefix>

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Użyj tej wartości zamiast <Scope>, jeśli chcesz określić własną wartość zamiast wartości określonej przez <Scope>. Jeśli został określony, <Prefix> dołącza na początku wartość klucza pamięci podręcznej do wpisów zapisanych w pamięci podręcznej. Wartość elementu <Prefix> zastępuje wartość elementu <Scope>.

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

Element <CacheContext>/<ProxyName>

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

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Atrybuty

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

Element <PurgeChildEntries>

true, aby trwale usunąć wpisy z pamięci podręcznej, które mają taką samą wartość ustawioną przez element <KeyFragment> skonfigurowany dla tej zasady. Wartości z innych części klucza pamięci podręcznej, np. w elementach <Prefix>, nie są uwzględniane.

Pamiętaj, że element <KeyFragment> musi być określony. Jeśli nie, ustawienie wartości „true” dla <PurgeChildEntries> może spowodować trwałe 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ć dobrym sposobem na trwałe usunięcie wielu powiązanych wpisów naraz.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

Domyślnie:

false

Obecność:

Opcjonalnie

Typ:

Wartość logiczna

Element <Scope>

Wyliczenie używane do utworzenia prefiksu klucza pamięci podręcznej, gdy element <Prefix> nie zawiera elementu <CacheKey>.

<Scope>scope_enumeration</Scope>

Domyślnie:

„Wyjątkowa”

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Ustawienie <Scope> określa klucz pamięci podręcznej dołączany na początku zgodnie z wartością <Scope>. Gdy zakres jest ustawiony na Exclusive, klucz pamięci podręcznej miałby na przykład taką postać:

orgName__envName__aplikacjaName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

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

Elementu <Scope> używasz w połączeniu z elementami <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ółużytkowany przez wszystkie serwery proxy interfejsów API wdrożone w środowisku. Klucz pamięci podręcznej jest dodawany na początku w formacie orgName __ orgName __.

Jeśli zdefiniujesz wpis <CacheKey> z apiAccessToken (<KeyFragment>) i zakresem <Global>, każdy wpis będzie przechowywany jako orgName__envName__apiAccessToken, po którym następuje zserializowana wartość tokena dostępu. W przypadku serwera proxy interfejsu API wdrożonego w środowisku o nazwie „test” w organizacji o nazwie „apifactory” tokeny dostępu będą przechowywane pod tym kluczem pamięci podręcznej: apifactory__test__apiAccessToken.

Application

Jako prefiks używana jest nazwa serwera proxy interfejsu API.

Klucz pamięci podręcznej jest dołączony na początku w formacie orgName__envName__orgName__envName__orgName__envName__.

Proxy

Jako prefiks jest używana konfiguracja ProxyEndpoint.

Klucz pamięci podręcznej jest dołączony w postaci orgName__envName__orgName__envName__orgName__envName__.

Target

Jako prefiks jest używana konfiguracja docelowego punktu końcowego.

Klucz pamięci podręcznej w postaci orgName__envName__aplikacjaName__deployedRevisionNumber__targetEndpointName .

Exclusive

Domyślny: Jest to najbardziej szczegółowy i wiążą się z nim minimalne ryzyko kolizji przestrzeni nazw w danej pamięci podręcznej.

Prefiks występuje w jednej z dwóch postaci:

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

Klucz pamięci podręcznej w postaci orgName__envName__orgName__envName__orgName__envName__

Pełny ciąg może wyglądać np. tak:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Element <CacheContext>/<TargetName>

Określa nazwę docelowego punktu końcowego, w którym zapisano dane w pamięci podręcznej.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Atrybuty

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

Zastosowanie

Buforowanie do ogólnego zastosowania za pomocą zasad Populate Cache, LookupCache i InvalidateCache korzysta ze skonfigurowanej przez Ciebie pamięci podręcznej lub współdzielonej pamięci podręcznej, która jest domyślnie uwzględniana. W większości przypadków bazowa współdzielona pamięć podręczna powinna spełniać Twoje potrzeby. Aby użyć tej pamięci podręcznej, pomiń element <CacheResource>.

Więcej informacji o konfigurowaniu pamięci podręcznych znajdziesz w artykule o tworzeniu i edytowaniu pamięci podręcznej środowiska. Więcej informacji o bazowym magazynie danych znajdziesz w artykule o procesie wewnętrznym buforowania.

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