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