Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Korzystając z zasad dotyczących pamięci podręcznej, zapewniasz unikalność kluczy wartości z pamięci podręcznej, konfigurując pamięć podręczną klawiszy. Klucz pamięci podręcznej wraz z innymi wartościami, które możesz skonfigurować, zapewnia niezawodny sposób podane w nim dane. Kluczy pamięci podręcznej są używane z zasadami wypełniania pamięci podręcznej, zasadą lookupCache, zasadąInvalidateCache i Pamięć podręczna odpowiedzi .
Wartości elementów konfiguracji –
<CacheKey>/<KeyFragment>, <Scope> i
<Prefix> – są połączone w celu utworzenia identyfikatora powiązanego z:
do wartości wpisanej w pamięci podręcznej. Użyjesz tej samej konfiguracji, aby pobrać wartość.
Używając tych elementów konfiguracji zasady pamięci podręcznej, możesz utworzyć klucz pamięci podręcznej:
| Element konfiguracji pamięci podręcznej | Opis |
|---|---|
<CacheKey>/<KeyFragment> |
Użyj połączonych elementów <KeyFragment> (<CacheKey>) do
określ unikalny identyfikator wpisów w pamięci podręcznej. Wartościami fragmentów kluczy mogą być literały statyczne lub
ustawione na podstawie zmiennych. |
<Scope> lub <Prefix> |
Aby kontynuować, użyj elementów <Scope> lub <Prefix>
kluczy pamięci podręcznej przestrzeni nazw. <Scope> wylicza listę wstępnie zdefiniowanych wartości.
Element <Prefix> zastępuje element <Scope> wartością
według własnego uznania. |
Wartości te są połączone w podany niżej sposób: <Scope> lub
Wartości <Prefix> oddzielonych od wartości fragmentów kluczy za pomocą podwójnych podkreśleń.
Kilka wartości KeyFragment jest też rozdzielonych podwójnymi podkreśleniami.
zakres | prefix__keyfragment[__keyfragment]
Dzięki pamięci podręcznej odpowiedzi zasad, możesz opcjonalnie dołączyć ten klucz pamięci podręcznej do wartości z odpowiedzi Accept nagłówek.
Użycie <CacheKey>
Element <CacheKey> konfiguruje sposób tworzenia unikalnego identyfikatora przez Edge
(klucz) dla każdego tworzonego przez niego wpisu pamięci podręcznej. Gdy Edge pobiera wartość z pamięci podręcznej, używa pamięci podręcznej
aby znaleźć właściwą wartość. W zasadzie ResponseCache jedna konfiguracja definiuje klucz
zarówno do buforowania, jak i pobierania. W zasadach PopulationCache i lookupCache każda zasada musi
mają identyczne elementy <CacheKey>, aby zapewnić, że wartość pobrana z metody
odpowiada wpisanej w niej wartości.
Element <CacheKey> może zawierać wiele elementów
<KeyFragment> elementów. W czasie działania wartości określone przez
Elementy <KeyFragment> są połączone dwoma podkreśleniami w
aby stanowić część klucza pamięci podręcznej.
Na przykład ta konfiguracja tworzy wartość hello__world do użycia
w kluczu pamięci podręcznej:
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey>Możesz też użyć wartości zmiennych w kluczu pamięci podręcznej, odwołując się do tej zmiennej w
<KeyFragment>, jak tutaj:
<KeyFragment ref="variable_name"/>
Aby na przykład uwzględnić w kluczu pamięci podręcznej element Content-Type z wiadomości z żądaniem, wykonaj następujące czynności:
<KeyFragment ref="request.header.Content-Type"/>
W tej konfiguracji zmienna request.header.Content-Type zawiera element
wartość application/json.
<CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
W ten sposób otrzymasz klucz pamięci podręcznej kończący się cyframi apiAccessToken__application/json__bar.
Listę zmiennych, których możesz używać, znajdziesz w tym artykule.
Klucze pamięci podręcznej wyodrębnione z zapytania parametry
Korzystanie ze zmiennych, takich jak request.queryparam.<queryparam_name> oraz request.querystring możesz skonfigurować klucz pamięci podręcznej, tak aby zawierał części ciągu zapytania żądania. Dla: poniższy adres URL używa dwóch parametrów zapytania – param1 i param2 – których można używać Twój klucz pamięci podręcznej:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
Element <CacheKey> może zawierać te wartości za pomocą konfiguracji
na przykład:
<CacheKey>
<KeyFragment ref="request.queryparam.param1" />
<KeyFragment ref="request.queryparam.param2" />
<CacheKey>W czasie działania klucz pamięci podręcznej zawierałby połączone wartości parametrów, jak w :
other_key_parts__value1__value2
Pamiętaj, że jeśli używasz zmiennych do wstawiania wartości z parametrów, wartości będą
połączone w kolejności sugerowanej przez kolejność elementów <KeyFragment>. Oprócz tego:
Edge będzie używać tylko tych wartości, do których się odwołasz
<KeyFragment> elementów. Jeśli listy parametrów zapytania są różne, parametr
nie są uwzględniane w kluczu pamięci podręcznej.
Można też użyć zmiennej request.querystring, która wstawia cały ciąg
jako część klucza pamięci podręcznej. Pamiętaj, że chociaż ta metoda uwzględnia
wszystkich parametrów, jeśli kolejność parametrów jest różna w zależności od żądania,
będzie inny. Innymi słowy, param1=value1¶m2=value2 i
param2=value2¶m1=value1 nie dają takiej samej wartości klucza pamięci podręcznej.
Listę zmiennych, których możesz używać, znajdziesz w tym artykule.
Korzystanie z <zakresu> i <Prefix>
Elementy <Scope> i <Prefix> umożliwiają
rozszerzysz klucz o prefiks przestrzeni nazw. Reprezentowane przez nie wartości są dodawane do pamięci podręcznej na początku
.
Domyślnie używany jest element <Scope>. Jest to wyliczenie, którego wartości
od szerokiego do wąskiego zakresu, przy czym wartość domyślna to najwęższa. Wartość domyślna jest używana do
podasz inną wartość lub określisz wartość elementu <Prefix>. Dostępne opcje
zastąp wartość <Scope> za pomocą elementu <Prefix>,
więc określ niestandardową wartość przestrzeni nazw.
Na przykład wartość <Scope> „Cały świat” – najszerszym zakresie – reprezentuje
nazwę organizacji i środowiska. Jeśli serwer proxy zostanie wdrożony w organizacji o nazwie
„mojafirma” i środowisku o nazwie „prod”, uzyskana na początku wartość będzie wartością
:
| Konfiguracja | Wynik |
|---|---|
<Scope>Global</Scope> |
mycompany__prod__. |
Jeśli używasz zakresu globalnego z zdefiniowanym powyżej kluczem pamięci podręcznej, wynik jest taki następujące:
| Konfiguracja | Wynik |
|---|---|
<Scope>Global</Scope>
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey> |
mycompany__prod__hello__world. |
Zgodnie z opisem w zasadach wyszukiwania pamięci podręcznej zakres może skonfigurować pod kątem zwiększenia szczegółowości z „Globalne” na „Tylko dostępność”. Zakres wyłączny jest najbardziej jest unikalny i dlatego stanowi minimalne ryzyko kolizji przestrzeni nazw w danej pamięci podręcznej. Każdy wpis w pamięci podręcznej z zakresem wyłącznym ma przedrostek w takiej postaci:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
Na przykład klucz pamięci podręcznej utworzony na podstawie wartości wykluczającej dla atrybutu <Scope>
będzie wyglądać tak:
apifactory__test__weatherapi__16__default__apiAccessToken