Zasada LookupCache

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

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

Ta zasada jest przeznaczona do krótkoterminowego buforowania ogólnego przeznaczenia. Używany w konsola z funkcją Wypełnij Zasada pamięci podręcznej (do zapisywania wpisów) i Unieważnij zasadę pamięci podręcznej (w przypadku unieważniania wpisów).

Informacje o buforowaniu odpowiedzi zasobów backendu znajdziesz w dokumentacji Zasada pamięci podręcznej odpowiedzi.

Odwołanie do elementu

Poniżej znajduje się lista elementów, które można 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>

Domyślnie udostępniana jest współdzielona pamięć podręczna. Aby użyć współdzielonej pamięci podręcznej, pomiń <CacheResource> element w tej konfiguracji zasady.

Więcej informacji o bazowym magazynie danych znajdziesz w artykule Wewnętrzne pamięci podręcznej. Więcej informacji o konfigurowaniu pamięci podręcznej można znaleźć w sekcji Tworzenie i edytowanie pamięci podręcznej środowiska.

&lt;LookupCache&gt; atrybuty

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

&lt;AssignTo&gt; element

Określa zmienną, do której przypisywany jest wpis pamięci podręcznej po pobraniu go z pamięci podręcznej. Zmienna musi mieć możliwość zapisu. 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ślne:

Nie dotyczy

Obecność:

Wymagane

Typ:

Ciąg znaków

&lt;CacheKey&gt; element

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

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

Domyślne:

Nie dotyczy

Obecność:

Wymagane

Typ:

Nie dotyczy

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

W czasie działania wartości <KeyFragment> są dodawane prefiksem Wartość elementu <Scope> lub <Prefix>. Na przykład parametr daje w rezultacie klucz pamięci podręcznej równy UserToken__apiAccessToken__&lt;value_of_client_id&gt;:

<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 na temat pracy z kluczami pamięci podręcznej.

&lt;CacheLookupTimeoutInSeconds&gt; element

Określa liczbę sekund, po których nieudane wyszukiwanie w pamięci podręcznej jest uważane za w pamięci podręcznej. W takim przypadku przepływ zostanie wznawiany na ścieżce braku pamięci podręcznej.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Domyślne:

30

Obecność:

Opcjonalnie

Typ:

Liczba całkowita

&lt;CacheResource&gt; element

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

Pomiń ten element, jeśli ta zasada (i odpowiednie pole PopulationCache oraz zasady VerifyateCache) korzystają z dołączonej współdzielonej pamięci podręcznej.

<CacheResource>cache_to_use</CacheResource>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

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

&lt;CacheKey&gt;/&lt;KeyFragment&gt; element

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

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

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Nie dotyczy

Może to być klucz (podana przez Ciebie statyczna nazwa) lub wartość (wpis dynamiczny ustawiony przez odwołania do zmiennej). Wszystkie określone fragmenty łącznie (plus prefiks) są połączone z utwórz klucz 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 na temat pracy z kluczami pamięci podręcznej.

Atrybuty

Atrybut Typ Domyślny Wymagane Opis
odsyłacz ciąg znaków Nie

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

&lt;CacheKey&gt;/&lt;Prefix&gt; element

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

<Prefix>prefix_string</Prefix>

Domyślne:

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 wyliczanej <Scope>. Jeśli zostanie określona, <Prefix> dodaje na początku wartość klucza pamięci podręcznej dla wpisów zapisanych w pamięci podręcznej. O Wartość elementu <Prefix> zastępuje element <Scope> .

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

&lt;Scope&gt; element

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

<Scope>scope_enumeration</Scope>

Domyślne:

„Ekskluzywna”

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Ustawienie <Scope> określa klucz pamięci podręcznej, który jest dodawany zgodnie z wartość <Scope>. Na przykład klucz pamięci podręcznej może mieć następującą postać, gdy: zakres jest ustawiony na Exclusive : orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

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

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

Dopuszczalne wartości

Global

Klucz pamięci podręcznej jest wspólny dla wszystkich serwerów proxy interfejsów API wdrożonych w środowisku. Klucz pamięci podręcznej to zostanie dołączony do postaci orgName __ envName __.

Jeśli zdefiniujesz wpis <CacheKey> z parametrem <KeyFragment> apiAccessToken i zakres <Global>, każdy wpis jest przechowywany jako orgName__envName__apiAccessToken, po nim następuje operator zserializowanej wartości tokena dostępu. Dla serwera proxy interfejsu API wdrożonego w środowisku o nazwie „test” w organizacji o nazwie „apifactory” tokeny dostępu były przechowywane w kolekcji ten klucz pamięci podręcznej: apifactory__test__apiAccessToken.

Application

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

Klucz pamięci podręcznej jest dodawany do formularza orgName__envName__applicationName.

Proxy

Jako prefiks jest używana konfiguracja ProxyEndpoint.

Klucz pamięci podręcznej jest dodawany do formularza orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName ,

Target

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

Klucz pamięci podręcznej dodany na początku formularza orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName ,

Exclusive

Domyślny: Jest to najbardziej szczegółowe rozwiązanie, więc wiąże się z minimalnym ryzykiem związanym z przestrzenią nazw i konfliktach w danej pamięci podręcznej.

Prefiks może mieć jedną z dwóch form:

  • Jeśli zasada jest dołączona do procesu ProxyEndpoint, prefiksem jest format ApiProxyName_ProxyEndpointName.
  • Jeśli zasada jest dołączona w sekcji TargetEndpoint, prefiksem jest formularz ApiProxyName_TargetName.

Klucz pamięci podręcznej dodany na początku formularza orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

Zastosowanie

Ta zasada służy do ogólnego buforowania. W czasie działania zasada lookupCache pobiera z pamięci podręcznej, przypisując wartość do zmiennej określonej za pomocą elementu AssignTo (jeśli nie zostanie pobrana żadna wartość, zmienna nie zostanie ustawiona). Szuka wartości na podstawie pamięci podręcznej klucz utworzony w ramach konfiguracji łączącej elementy CacheKey i Scope. Innymi słowy, do pobrania konkretnej wartości dodanej do pamięci podręcznej przez zasadę PopulationCache, klasy lookupCache zasada musi mieć elementy związane z kluczem pamięci podręcznej skonfigurowane w taki sam sposób jak dla zasady PopulationCache .

Buforowanie do zwykłych obciążeń przy użyciu zasady Wypełnij pamięć podręczną. Zasada lookupCache i zasadaInvalidateCache używa albo ze skonfigurowanej pamięci podręcznej, albo ze współdzielonej pamięci podręcznej, która jest dostępna domyślnie. W większości przypadków bazowa współdzielona pamięć podręczna powinna Ci odpowiadać. Aby użyć domyślnej pamięci podręcznej, po prostu pomiń element <CacheResource>.

Więcej informacji o konfigurowaniu pamięci podręcznych znajdziesz w sekcji Tworzenie i edytowanie środowiska Cache. Więcej informacji o bazowym magazynie danych znajdziesz w artykule Wewnętrzne pamięci podręcznej.

Zmienne przepływu

Zmienne przepływu mogą być używane do konfigurowania dynamicznego zachowania w środowisku wykonawczym dla zasad i przepływów, na podstawie w nagłówkach HTTP lub treści wiadomości albo z kontekstem dostępnym w przepływie. Więcej informacji na temat konfiguracji o zmiennych przepływu, patrz Zmienne odniesienie.

Poniższe wstępnie zdefiniowane zmienne przepływu są dostępne po dostosowaniu działania określoną w zasadzie lookupCache.

Zmienne Typ Uprawnienie 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.{policy-name}.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