Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Określa sposób zapisywania wartości z 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żywana w połączeniu z zasadą Sprawdź pamięć podręczną (do odczytu wpisów w pamięci podręcznej) 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.
<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>
Atrybuty <PopulationCache>
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 Opcjonalnie możesz użyć elementu |
Nie dotyczy | Wymagane |
continueOnError |
Ustaw wartość Ustaw jako |
false | Opcjonalnie |
enabled |
Ustaw jako Ustaw wartość |
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 |
---|---|
Obecność | Opcjonalnie |
Typ | Ciąg znaków |
Element <CacheKey>
Konfiguruje unikalny wskaźnik do danych przechowywanych w pamięci podręcznej.
Rozmiar klucza pamięci podręcznej nie może przekraczać 2 KB.
<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<CacheResource>
Określa pamięć podręczną, w której mają być przechowywane wiadomości.
Pomiń ten element, jeśli ta zasada (oraz odpowiednie zasady LookupCache i InvalidateCache) używa 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 <ExpirySettings>
Określa, kiedy wpis w pamięci podręcznej powinien wygasnąć. Gdy występuje, atrybut <TimeoutInSeconds>
zastępuje zarówno <TimeOfDay>
, jak 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ślnie: |
Nie dotyczy |
Obecność: |
Wymagane |
Typ: |
Nie dotyczy |
Elementy podrzędne elementu <ExpirySettings>
Używaj dokładnie 1 elementu podrzędnego. Ta tabela zawiera opis elementów podrzędnych obiektu <ExpirySettings>
:
Element podrzędny | Opis |
---|---|
<TimeoutInSeconds> |
Liczba sekund, po których wpis pamięci podręcznej powinien wygasnąć. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> Ten element zastępuje teraz wycofany element |
<ExpiryDate> |
Określa datę wygaśnięcia wpisu w pamięci podręcznej. Podaj ciąg znaków w formacie <ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> Jeśli podana data przypada w przeszłości, zasada zastosuje maksymalny czas życia do 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 wygasnąć.
Podaj ciąg znaków w formacie <ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
Określ tylko jeden z możliwych elementów podrzędnych. Jeśli określisz wiele elementów, kolejność pierwszeństwa będzie następująca:TimeoutInSeconds
, ExpiryDate
, TimeOfDay
.
Jeśli w przypadku każdego z wymienionych powyżej elementów podrzędnych obiektu <ExpirySettings>
określisz opcjonalny atrybut ref
, zasada pobierze wartość wygaśnięcia z nazwanej zmiennej kontekstowej. Jeśli zmienna nie jest zdefiniowana, zasada używa literału wartości tekstowej elementu podrzędnego.
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__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ ]
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 |
Application |
Jako prefiks używana jest nazwa serwera proxy interfejsu API. Klucz pamięci podręcznej jest na początku w postaci orgName__envName__apiProxyName. |
Proxy |
Jako prefiks jest używana konfiguracja ProxyEndpoint. Klucz pamięci podręcznej jest dołączany w postaci orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName . |
Target |
Jako prefiks jest używana konfiguracja docelowego punktu końcowego. Klucz pamięci podręcznej w postaci orgName__envName__apiProxyName__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:
Klucz pamięci podręcznej w postaci orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName Pełny ciąg może wyglądać np. tak: apifactory__test__weatherapi__16__default__apiAccessToken. |
Element <Source>
Określa zmienną, której wartość należy zapisać w pamięci podręcznej.
<Source>source_variable</Source>
Domyślnie: |
Nie dotyczy |
Obecność: |
Wymagane |
Typ: |
Ciąg znaków |
Zastosowanie
Ta zasada służy do buforowania ogólnego przeznaczenia. W czasie działania zasada <PopulateCache>
zapisuje dane ze zmiennej określonej w elemencie <Source>
w pamięci podręcznej podanej w elemencie <CacheResource>
. Za pomocą elementów <CacheKey>
, <Scope>
i <Prefix>
możesz określić klucz, którego możesz użyć do pobierania wartości z zasady <LookupCache>
. Aby określić, kiedy wartość w pamięci podręcznej powinna wygasnąć, użyj elementu <ExpirySettings>
.
Buforowanie do ogólnego przeznaczenia z zasadami PopulationCache, zasadą LookupCache i InvalidateCache korzysta ze skonfigurowanej przez Ciebie pamięci podręcznej lub współdzielonej pamięci podręcznej, która jest uwzględniana domyślnie. W większości przypadków bazowa współdzielona pamięć podręczna powinna spełniać Twoje potrzeby. Aby użyć tej pamięci podręcznej, pomiń element <CacheResource>
.
Limity pamięci podręcznej: obowiązują różne limity pamięci podręcznej, takie jak rozmiar nazwy i wartości, łączna liczba pamięci podręcznych, liczba elementów w pamięci podręcznej oraz czas wygaśnięcia.
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.
Informacje o szyfrowaniu pamięci podręcznej
Brzegowy dla chmury publicznej: pamięć podręczna jest szyfrowana tylko w organizacjach korzystających z PCI i HIPAA. Szyfrowanie w tych organizacjach jest konfigurowane podczas obsługi administracyjnej organizacji.
Kody błędów
W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.
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 te zasady.
Nazwa błędu | Przyczyna | Napraw |
---|---|---|
InvalidCacheResourceReference |
Ten błąd występuje, jeśli element <CacheResource> w zasadzie PopulateCache jest ustawiony na nazwę, 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 zasada wywołuje błąd. Więcej informacji znajdziesz w artykule Co musisz wiedzieć 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 środowiska wykonawczego powyżej. Nazwa błędu to ostatnia część kodu. | 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>