Zasada LookupCache

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

Określa sposób pobierania wartości z pamięci podręcznej w czasie działania.

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ą uzupełniania pamięci podręcznej (do tworzenia wpisów) i zasadą unieważniania pamięci podręcznej (do unieważniania wpisów).

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.

<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
    <DisplayName>Lookup Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <CacheLookupTimeoutInSeconds/>
    <Scope>Exclusive</Scope>
    <AssignTo>flowVar</AssignTo>
</LookupCache>

Udostępniona pamięć podręczna jest uwzględniana domyślnie. Aby używać współdzielonej pamięci podręcznej, pomiń element <CacheResource> w tej konfiguracji zasad.

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

Atrybuty <LookupCache>

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

Określa zmienną, do której jest przypisywany wpis pamięci podręcznej po jego pobraniu z pamięci podręcznej. Zmienna musi być możliwy do zapisu. Jeśli wyszukiwanie w pamięci podręcznej nie pobierze wartości, zmienna nie zostanie ustawiona.

<AssignTo>variable_to_receive_cached_value</AssignTo>

Domyślnie:

Nie dotyczy

Obecność:

Wymagane

Typ:

Ciąg znaków

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

Określa liczbę sekund, po których nieudane wyszukiwanie w pamięci podręcznej będzie uznawane za brak w pamięci podręcznej. W takim przypadku przepływ jest wznawiany po ścieżce pominięcia w pamięci podręcznej.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Domyślnie:

30

Obecność:

Opcjonalnie

Typ:

Liczba całkowita

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 InvalidateCache) 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 Typ Domyślne Wymagane Opis
referencja ciąg znaków Nie

Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera literał.

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 <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__orgName__envName__orgName__envName__ [ orgName__envName__ ].

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

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
.

Zastosowanie

Użyj tej zasady do ogólnego zastosowania pamięci podręcznej. W czasie działania zasada LookupCache pobiera wartość z pamięci podręcznej, przypisując wartość do zmiennej określonej w elemencie AssignTo (jeśli nie zostanie pobrana żadna wartość, zmienna nie zostanie ustawiona). Szuka wartości na podstawie klucza pamięci podręcznej utworzonego za pomocą konfiguracji, która łączy elementy CacheKey i Scope. Inaczej mówiąc, aby można było pobrać konkretną wartość dodaną do pamięci podręcznej przez zasadę PopulationCache, w zasadzie LookupCache elementy związane z kluczem pamięci podręcznej muszą być skonfigurowane w taki sam sposób, jak zasada PopulationCache.

Buforowanie do ogólnego przeznaczenia za pomocą zasady wypełniania pamięci podręcznej, zasady LookupCache i zasady 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ć domyślnej 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.

Zmienne przepływu

Zmienne przepływu mogą służyć do konfigurowania dynamicznego działania środowiska wykonawczego dla zasad i przepływów w oparciu o nagłówki HTTP, treść wiadomości lub kontekst dostępny w procesie. Więcej informacji o zmiennych przepływu znajdziesz w dokumentacji zmiennych.

Po dostosowaniu działania pamięci podręcznej zdefiniowanej w zasadzie LookupCache dostępne będą poniższe wstępnie zdefiniowane zmienne przepływu.

Zmienne Typ Uprawnienia Opis
lookupcache.{nazwa-zasady}.cachename. Ciąg znaków Tylko do odczytu Zwraca nazwę pamięci podręcznej używaną w zasadzie.
lookupcache.{nazwa-zasady}.cachekey Ciąg znaków Tylko do odczytu Zwraca użyty klucz.
lookupcache.{nazwa-zasady}.cachehit Wartość logiczna Tylko do odczytu Prawda, jeśli zasada znalazła wartość dla określonego klucza pamięci podręcznej.
lookupcache.{nazwa-zasady}.assignto Ciąg znaków Tylko do odczytu Zwraca zmienną, do której przypisano pamięć podręczną.

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> jest ustawiony na nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
InvalidTimeout Jeśli element <CacheLookupTimeoutInSeconds> jest ustawiony na liczbę ujemną, wdrożenie serwera proxy interfejsu API się nie uda.
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