Zasada LookupCache

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

Określa, jak pobrane w czasie działania mają być wartości z pamięci podręcznej.

Ta zasada jest przeznaczona do ogólnego krótkoterminowego buforowania. Jest on używany w połączeniu z zasadami dotyczącymi wypełniania i unieważniania pamięci podręcznej (do zapisywania wpisów) oraz zasadami dotyczącymi unieważniania pamięci podręcznej (do unieważniania wpisów).

Informacje o przechowywaniu w pamięci podręcznej odpowiedzi z zasobów backendu znajdziesz w zasadach dotyczących pamięci podręcznej odpowiedzi.

Element referencyjny

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

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

Domyślnie uwzględniana jest pamięć podręczna współdzielona. Aby korzystać z wspólnej pamięci podręcznej, pomiń element <CacheResource> w tej konfiguracji zasady.

Więcej informacji o podstawowym magazynie danych znajdziesz w artykule Wewnętrzna architektura pamięci podręcznej. Więcej informacji o konfigurowaniu pamięci podręcznej znajdziesz w artykule Tworzenie i edytowanie pamięci podręcznej środowiska.

Atrybuty elementu <LookupCache>

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

Określa zmienną, w której przypisany jest wpis z pamięci podręcznej po jego pobraniu z tej pamięci. Zmienna musi być zapisywalna. Jeśli wyszukiwanie w pamięci podręcznej nie zwróci 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 unikatowy wskaźnik do części 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 elementu danych przechowywanego w pamięci podręcznej.

W czasie wykonywania wartości <KeyFragment> są poprzedzone wartością elementu <Scope> lub wartością <Prefix>. Na przykład następujący 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>

Element <CacheKey> używasz w połączeniu z elementami <Prefix><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 zostanie uznane za brak w pamięci podręcznej. W takim przypadku przepływ danych wznawia się wzdłuż ścieżki braku w pamięci podręcznej.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Domyślnie:

30

Obecność:

Opcjonalny

Typ:

Liczba całkowita

Element<CacheResource>

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

Pomiń ten element całkowicie, jeśli te zasady (oraz odpowiednie zasady PopulateCache i InvalidateCache) używają zawartej pamięci podręcznej.

<CacheResource>cache_to_use</CacheResource>

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Więcej informacji o konfigurowaniu pamięci podręcznej znajdziesz w artykule Tworzenie i edytowanie 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 dla dopasowywania żądań do odpowiedzi z pamięci podręcznej.

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

Domyślnie:

Nie dotyczy

Obecność:

Opcjonalny

Typ:

Nie dotyczy

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

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

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

Atrybuty

Atrybut Typ Domyślny Wymagane Opis
ref ciąg znaków Nie

Zmienne, z których ma być pobierana wartość. Nie należy go używać, jeśli element zawiera wartość dosłowną.

Element <CacheKey>/<Prefix>

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ść:

Opcjonalny

Typ:

Ciąg znaków

Użyj tej wartości zamiast wartości <Scope>, jeśli chcesz podać własną wartość zamiast wartości zdefiniowanej w atrybucie <Scope>. Jeśli jest zdefiniowany, <Prefix> dodaje wartość klucza pamięci podręcznej do wpisów zapisanych w pamięci podręcznej. Wartość elementu <Prefix> zastępuje wartość elementu <Scope>.

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

Element <Scope>

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

<Scope>scope_enumeration</Scope>

Domyślnie:

„Exclusive” (wyłączne)

Obecność:

Opcjonalny

Typ:

Ciąg znaków

Ustawienie <Scope> określa klucz pamięci podręcznej, który jest dodawany na początku zgodnie z wartością <Scope>. Gdy zakres ma wartość Exclusive, klucz pamięci podręcznej będzie miał postać: nazwa_organizacji__nazwa_środowiska__aplikacji__nazwa_pośrednika__nazwa_celowa__ [ serializowany_klucz_pamięci_podręcznej ].

Jeśli element <Prefix> występuje w elementach <CacheKey>, zastępuje wartość elementu <Scope>. Prawidłowe wartości to wymienione poniżej.

Element <Scope> używasz w połączeniu z elementami <CacheKey><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ólny dla wszystkich wdrożeń proxy interfejsu API w środowisku. Klucz pamięci podręcznej jest dodawany w postaci nazwaOrganizacji __ nazwaŚrodowiska __.

Jeśli zdefiniujesz wpis <CacheKey> z wartością <KeyFragment> apiAccessToken i zakresem <Global>, każdy wpis zostanie zapisany jako orgName__envName__apiAccessToken, a następnie z wartością serializowaną tokena dostępu. W przypadku serwera proxy interfejsu API wdrożonego w środowisku o nazwie „test” w organizacji o nazwie „apifactory” tokeny dostępu są 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 dodawany na początku w formie nazwaOrganizacji__nazwaŚrodowiska__aplikacji.

Proxy

Jako prefiks używana jest konfiguracja ProxyEndpoint.

Klucz pamięci podręcznej jest dodawany na początku w formie orgName__envName__applicationName__proxyEndpointName.

Target

Jako prefiks służy konfiguracja punktu końcowego docelowego.

Klucz pamięci podręcznej z dołączonym prefiksem w formie nazwaOrganizacji__nazwaŚrodowiska__aplikacji__nazwaUrządzeniaDocelowego.

Exclusive

Domyślny: Jest to najbardziej szczegółowy sposób, który minimalizuje ryzyko kolizji nazw w danej pamięci podręcznej.

Prefiks może mieć jedną z 2 form:

  • 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 z dodatkiem w formie nazwaOrganizacji__nazwaŚrodowiska__aplikacji__nazwaProxyNazwaCelu

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

Zastosowanie

Używaj tej zasady do buforowania ogólnego. W czasie wykonywania zasada LookupCache pobiera wartość z pamięci podręcznej i przypisuje ją do zmiennej określonej za pomocą elementu AssignTo (jeśli nie zostanie pobrana żadna wartość, zmienna nie zostanie ustawiona). Szuka wartości na podstawie klucza pamięci podręcznej utworzonego w ramach konfiguracji, która łączy elementy CacheKey i Scope. Innymi słowy, aby pobrać określoną wartość dodaną do pamięci podręcznej przez zasadę PopulateCache, zasada LookupCache musi mieć elementy związane z kluczem pamięci podręcznej skonfigurowane w taki sam sposób jak zasada PopulateCache.

Buforowanie ogólnego przeznaczenia przy użyciu zasad PopulateCache, LookupCache i InvalidateCache korzysta z bufora skonfigurowanego przez użytkownika lub współdzielonego, który jest domyślnie uwzględniany. W większości przypadków wystarczy pamięć podręczna udostępniona przez system. Aby użyć domyślnej pamięci podręcznej, po prostu pomiń element <CacheResource>.

Więcej informacji o konfigurowaniu pamięci podręcznej znajdziesz w artykule Tworzenie i edytowanie pamięci podręcznej środowiska. Więcej informacji o podstawowym magazynie danych znajdziesz w artykule Wewnętrzna architektura pamięci podręcznej.

Zmienne przepływu

Zmiennych przepływu można używać do konfigurowania dynamicznego zachowania w czasie wykonywania w przypadku zasad i przepływów na podstawie nagłówków HTTP lub treści wiadomości albo kontekstu dostępnego w przepływie. Więcej informacji o zmiennych przepływu znajdziesz w dokumentacji zmiennych.

Po dopasowaniu działania pamięci podręcznej zdefiniowanej w regułach LookupCache dostępne są te wstępnie zdefiniowane zmienne przepływu.

Zmienne Typ Uprawnienie Opis
lookupcache.{policy-name}.cachename Ciąg znaków Tylko do odczytu Zwraca nazwę pamięci podręcznej używanej w zasadzie.
lookupcache.{policy-name}.cachekey Ciąg znaków Tylko do odczytu Zwraca użyty klucz.
lookupcache.{policy-name}.cachehit Wartość logiczna Tylko do odczytu Wartość Prawda, jeśli zasady znalazły wartość dla określonego klucza pamięci podręcznej.
lookupcache.{policy-name}.assignto Ciąg znaków Tylko do odczytu Zwraca zmienną, do której przypisana jest pamięć podręczna.

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