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
The following table describes attributes that are common to all policy parent elements:
Attribute | Description | Default | Presence |
---|---|---|---|
name |
The internal name of the policy. The value of the Optionally, use the |
N/A | Required |
continueOnError |
Set to Set to |
false | Optional |
enabled |
Set to Set to |
true | Optional |
async |
This attribute is deprecated. |
false | Deprecated |
<DisplayName> element
Use in addition to the name
attribute to label the policy in the
management UI proxy editor with a different, natural-language name.
<DisplayName>Policy Display Name</DisplayName>
Default |
N/A If you omit this element, the value of the policy's |
---|---|
Presence | Optional |
Type | String |
<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
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP Status | Occurs when |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element in the PopulateCache policy is set to
a name that does not exist in the environment where the API proxy is being deployed. |
build |
CacheNotFound |
The cache specified in the <CacheResource> element does not
exist. |
build |
Fault variables
These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | populatecache.POP-CACHE-1.failed = true |
Example error response
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Example fault rule
<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>