Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Określa sposób zapisywania wartości w pamięci podręcznej w czasie działania.
Zasada Wypełnij pamięć podręczną służy do zapisywania wpisów w krótkoterminowej pamięci podręcznej ogólnego przeznaczenia. Jest używane w połączeniu z funkcją Wyszukaj zasady dotyczące pamięci podręcznej (do odczytu wpisów w pamięci podręcznej) oraz Unieważnij zasadę dotyczącą pamięci podręcznej (do 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.
<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1"> <DisplayName>Populate Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSeconds>300</TimeoutInSeconds> </ExpirySettings> <Source>flowVar</Source> </PopulateCache>
<PopulateCache> 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 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 |
<CacheKey> element
Konfiguruje unikalny wskaźnik danych przechowywanych w pamięci podręcznej.
Rozmiar kluczy pamięci podręcznej nie może przekraczać 2 KB.
<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__
<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 na temat pracy z kluczami pamięci podręcznej.
<CacheResource> element
Określa pamięć podręczną, w której mają być przechowywane wiadomości.
Pomiń ten element, jeśli ta zasada (oraz odpowiednie elementy lookupCache i 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.
<CacheKey>/<KeyFragment> 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ą. |
<CacheKey>/<Prefix> 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.
<ExpirySettings> element
Określa, kiedy wpis w pamięci podręcznej powinien wygasnąć. Kiedy
obecny, <TimeoutInSeconds>
zastąpienie
<TimeOfDay>
i <ExpiryDate>
.
<ExpirySettings> <!-- use exactly one of the following child elements --> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
Domyślne: |
Nie dotyczy |
Obecność: |
Wymagane |
Typ: |
Nie dotyczy |
Elementy podrzędne elementu <ExpirySettings>
Użyj dokładnie 1 elementu podrzędnego. W poniższej tabeli znajdziesz opis elementów podrzędnych funkcji
<ExpirySettings>
:
Element podrzędny | Opis |
---|---|
<TimeoutInSeconds> |
Liczba sekund, po których wpis w pamięci podręcznej powinien wygasnąć. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> Ten element zastępuje wycofany element |
<ExpiryDate> |
Określa datę wygaśnięcia wpisu w pamięci podręcznej. Określ ciąg znaków w formularzu
<ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> Jeśli podana data przypada w przeszłości, zasada będzie stosować maksymalny czas życia wpisu w pamięci podręcznej. Maksymalna wartość to 30 dni. |
<TimeOfDay> |
Określa godzinę, o której wpis w pamięci podręcznej powinien tracić ważność.
Podaj ciąg w formie <ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
Należy podać tylko jeden z możliwych elementów podrzędnych. Jeśli podasz wiele elementów,
kolejność obowiązywania zasad to:TimeoutInSeconds
, ExpiryDate
,
TimeOfDay
W przypadku każdego z powyższych elementów podrzędnych klasy <ExpirySettings>
Jeśli określisz opcjonalny atrybut ref
w elemencie podrzędnym, zasada
pobierze wartość wygaśnięcia ważności z nazwanej zmiennej kontekstowej. Jeśli zmienna nie jest zdefiniowana,
zasada używa wartości tekstowej elementu podrzędnego.
<Scope> 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__apiProxyName__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 |
Application |
Jako prefiks jest używana nazwa serwera proxy interfejsu API. Klucz pamięci podręcznej ma postać orgName__envName__apiProxyName. |
Proxy |
Jako prefiks jest używana konfiguracja ProxyEndpoint. Klucz pamięci podręcznej jest dodawany do formularza orgName__envName__apiProxyName__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__apiProxyName__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:
Klucz pamięci podręcznej dodany na początku formularza orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName Pełny ciąg znaków może na przykład wyglądać tak: apifactory__test__weatherapi__16__default__apiAccessToken. |
<Source> element
Określa zmienną, której wartość ma być zapisywana w pamięci podręcznej.
<Source>source_variable</Source>
Domyślne: |
Nie dotyczy |
Obecność: |
Wymagane |
Typ: |
Ciąg znaków |
Zastosowanie
Ta zasada służy do ogólnego buforowania. W czasie działania
Zasada <PopulateCache>
zapisuje dane ze zmiennej podanej w parametrze
<Source>
do pamięci podręcznej wskazanej w polu
<CacheResource>
. Za pomocą <CacheKey>
,
<Scope>
i <Prefix>
, aby określić klucz, który
może za pomocą zasady <LookupCache>
pobrać wartość. Użyj
<ExpirySettings>
– do skonfigurowania, kiedy wartość w pamięci podręcznej powinna wygasnąć.
Buforowanie ogólnego przeznaczenia z użyciem zasad PopulationCache, zasad lookupCache i zasad usługiInvalidateCache.
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ć tej pamięci podręcznej, po prostu pomiń
<CacheResource>
element.
Limity pamięci podręcznej: różne limity pamięci podręcznej takie jak nazwa i rozmiar wartości, łączna liczba pamięci podręcznych, liczba elementów w pamięci podręcznej, i wygaśnięcie.
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.
Informacje o szyfrowaniu pamięci podręcznej
Edge for Public Cloud: pamięć podręczna jest szyfrowana tylko w PCI – i zgodne z HIPAA organizacji non-profit. Szyfrowanie w tych organizacjach jest skonfigurowane podczas organizacji. i udostępnianie danych.
Kody błędów
W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami
Błędy w czasie wykonywania
Te błędy mogą wystąpić podczas wykonywania zasady.
Kod błędu | Stan HTTP | Występuje, gdy |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Wpisu nie można zapisać w pamięci podręcznej. Obiekt wiadomości zapisywany w pamięci podręcznej nie jest instancją klasy, którą można serializować. |
Błędy wdrażania
Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.
Nazwa błędu | Przyczyna | Napraw |
---|---|---|
InvalidCacheResourceReference |
Ten błąd występuje, jeśli element <CacheResource> w zasadzie PopulationCache ma wartość
nazwa, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API. |
build |
CacheNotFound |
Pamięć podręczna określona w elemencie <CacheResource> nie
istnieje. |
build |
Zmienne błędów
Te zmienne są ustawiane, gdy ta zasada wywołuje błąd. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.
Zmienne | Gdzie | Przykład |
---|---|---|
fault.name="fault_name" |
fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. | populatecache.POP-CACHE-1.failed = true |
Przykładowa odpowiedź na błąd
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Przykładowa reguła błędu
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>