Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację
Apigee X. info
Konfiguruje sposób pobierania wartości z pamięci podręcznej w czasie działania.
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ą Invalidate Cache (do unieważniania wpisów).
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.
<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 jest uwzględniana pamięć podręczna współdzielona. Aby używać pamięci podręcznej współdzielonej, pomiń element
<CacheResource> w konfiguracji tej zasady.
Więcej informacji o bazowym magazynie danych znajdziesz w artykule Wewnętrzne działanie pamięci podręcznej. Więcej informacji o konfigurowaniu pamięci podręcznych 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 Opcjonalnie możesz użyć elementu |
Nie dotyczy | Wymagane |
continueOnError |
Ustaw jako Ustaw jako |
fałsz | Opcjonalnie |
enabled |
Aby egzekwować zasadę, ustaw wartość Aby wyłączyć zasadę, ustaw wartość |
prawda | Opcjonalnie |
async |
Ten atrybut został wycofany. |
fałsz | Wycofano |
<DisplayName> 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 |
|---|---|
| Obecność | Opcjonalnie |
| Typ | Ciąg znaków |
Element <AssignTo>
Określa zmienną, do której przypisywany jest wpis w pamięci podręcznej po pobraniu go z pamięci podręcznej. 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ślny: |
Nie dotyczy |
|
Obecność: |
Wymagane |
|
Typ: |
Ciąg znaków |
Element <CacheKey>
Konfiguruje unikalny wskaźnik do fragmentu danych przechowywanych 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 <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 jest wznawiany w ścieżce braku w pamięci podręcznej.
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
|
Domyślny: |
30 |
|
Obecność: |
Opcjonalny |
|
Typ: |
Liczba całkowita |
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 InvalidateCache) korzysta z dołączonej pamięci podręcznej współdzielonej, 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ędniona 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 podana przez Ciebie) 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 | Typ | Domyślny | Wymagane | Opis |
|---|---|---|---|---|
| ref | tekst | Nie |
Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera a literal value. |
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>, jeśli chcesz określić własną wartość
zamiast wartości wyliczeniowej <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 <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ł postać, gdy
zakres jest ustawiony na Exclusive :
orgName__envName__applicationName__proxy|TargetName__
[ serializedCacheKey ].
Jeśli w <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
Global |
Klucz pamięci podręcznej jest współdzielony we wszystkich proxy interfejsu API wdrożonych w środowisku. Klucz pamięci podręcznej jest poprzedzany w postaci orgName __ envName __. Jeśli zdefiniujesz wpis |
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__proxyEndpointName . |
Target |
Konfiguracja TargetEndpoint jest używana jako prefiks. Klucz pamięci podręcznej jest poprzedzany w postaci orgName__envName__applicationName__targetEndpointName . |
Exclusive |
Domyślny. Jest to najbardziej szczegółowy prefiks, dlatego minimalizuje ryzyko kolizji przestrzeni nazw w danej pamięci podręcznej. Prefiks ma jedną z 2 postaci:
Klucz pamięci podręcznej jest poprzedzany w postaci orgName__envName__applicationName__proxyNameITargetName. Na przykład pełny ciąg znaków może wyglądać tak: apifactory__test__weatherapi__16__default__apiAccessToken |
Zastosowanie
Używaj tej zasady do buforowania do zwykłych obciążeń. W czasie działania 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). Wartość jest wyszukiwana na podstawie klucza pamięci podręcznej utworzonego za pomocą konfiguracji, która łączy elementy CacheKey i Scope. Innymi słowy, aby pobrać konkretną 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ólne za pomocą zasad Populate Cache,
LookupCache i InvalidateCache korzysta
z pamięci podręcznej skonfigurowanej przez Ciebie lub z pamięci podręcznej współdzielonej, która jest domyślnie dołączona. W większości przypadków bazowa pamięć podręczna współdzielona powinna spełniać Twoje potrzeby. Aby używać domyślnej 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 bazowym magazynie danych znajdziesz w artykule Wewnętrzne działanie pamięci podręcznej.
Zmienne przepływu
Zmienne przepływu można używać do konfigurowania dynamicznego zachowania zasad i przepływów w czasie działania na podstawie nagłówków HTTP, treści wiadomości lub kontekstu dostępnego w przepływie. Więcej informacji o zmiennych przepływu znajdziesz w artykule Dokumentacja zmiennych.
Po dostosowaniu zachowania pamięci podręcznej zdefiniowanej w zasadzie LookupCache dostępne są te predefiniowane 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żywany klucz. |
| lookupcache.{policy-name}.cachehit | Wartość logiczna | Tylko do odczytu | Wartość true, 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 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. |
build |
InvalidTimeout |
Jeśli element <CacheLookupTimeoutInSeconds> jest ustawiony na liczbę ujemną, wdrożenie serwera proxy interfejsu API się nie uda. |
build |
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. | build |
Zmienne błędów
Nie dotyczy
Przykładowa odpowiedź na błąd
Nie dotyczy