Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Quando utilizzi i criteri della cache, garantisci l'univocità delle chiavi valore memorizzate nella cache configurando la cache chiave. Una chiave cache, insieme ad altri valori che puoi configurare, offre un modo affidabile gli stessi dati che inserisci. Puoi utilizzare le chiavi cache con il criterio compile Cache, il criterio LookupCache, il criterio InvalidateCache e Cache delle risposte di Google Cloud.
I valori degli elementi di configurazione:
<CacheKey>
/<KeyFragment>
, <Scope>
e
<Prefix>
: sono concatenati per creare un identificatore associato a
il valore che inserisci nella cache. Devi utilizzare questa stessa configurazione per recuperare il valore.
Puoi creare una chiave cache con i seguenti elementi di configurazione dei criteri della cache:
Elemento di configurazione cache | Descrizione |
---|---|
<CacheKey> /<KeyFragment> |
Usa gli elementi <CacheKey> <KeyFragment> combinati per
per specificare un identificatore univoco
per le voci della cache. I valori KeyFragment possono essere valori letterali statici o
impostato dalle variabili. |
<Scope> o <Prefix> |
Utilizza gli elementi <Scope> o <Prefix> per estendere ulteriormente
nello spazio dei nomi. <Scope> enumera un elenco di valori predefiniti.
L'elemento <Prefix> sostituisce <Scope> con un valore
di tua scelta. |
Questi valori sono concatenati nel seguente formato, con <Scope>
o
Valori di <Prefix>
separati dai valori KeyFragment da trattini bassi doppi.
Più valori KeyFragment sono separati da doppi trattini bassi.
ambito | prefix__keyfragment[__keyfragment]
Con la cache delle risposte criterio, puoi aggiungere questa chiave cache con valori della risposta Accetta intestazione.
Utilizzo di <CacheKey>
L'elemento <CacheKey>
configura il modo in cui Edge creerà un identificatore univoco
(una chiave) per ogni voce di cache creata. Quando Edge recupera il valore memorizzato nella cache, utilizza la cache
per individuare il valore corretto. Nel criterio ResponseCache, una configurazione definisce la chiave
sia per la memorizzazione nella cache che per il recupero. Nei criteri PeopleCache e LookupCache, ogni criterio deve
avere elementi <CacheKey>
identici per garantire che un valore recuperato
Cache corrisponde a un valore inserito.
L'elemento <CacheKey>
può includere più
Elementi <KeyFragment>
. In fase di runtime, i valori specificati
Gli elementi <KeyFragment>
sono concatenati con due trattini bassi tra loro in
che costituiscono parte della chiave cache.
Ad esempio, la seguente configurazione crea il valore hello__world
da utilizzare
nella chiave cache:
<CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
Puoi anche utilizzare i valori di una variabile in una chiave cache facendo riferimento alla variabile in una
Elemento <KeyFragment>
, come mostrato qui:
<KeyFragment ref="variable_name"/>
Ad esempio, per fare in modo che il valore della chiave cache incorpori il Content-Type del messaggio di richiesta, procedi nel seguente modo:
<KeyFragment ref="request.header.Content-Type"/>
Nella configurazione seguente, la variabile request.header.Content-Type
ha
valore application/json
.
<CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
Il risultato è una chiave cache che termina con apiAccessToken__application/json__bar
.
Per un elenco delle variabili che puoi utilizzare, consulta Riferimento per le variabili.
Chiavi cache derivate da una query parametri
Utilizzo di variabili come request.queryparam.<queryparam_name> e request.querystring, puoi configurare una chiave cache in modo che la chiave includa parti della stringa di query di una richiesta. Per Ad esempio, il seguente URL utilizza due parametri di query: param1 e param2, che puoi utilizzare chiave cache:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
L'elemento <CacheKey>
può incorporare questi valori con una configurazione
ad esempio:
<CacheKey> <KeyFragment ref="request.queryparam.param1" /> <KeyFragment ref="request.queryparam.param2" /> <CacheKey>
In fase di runtime, la chiave cache includerebbe i valori dei parametri concatenati, ad esempio seguenti:
other_key_parts__value1__value2
Tieni presente che quando utilizzi le variabili per inserire i valori dei parametri, questi ultimi verranno
concatenate nell'ordine suggerito dall'ordine degli elementi <KeyFragment>
. Inoltre,
tieni presente che Edge utilizzerà solo i valori a cui fai riferimento in modo specifico
<KeyFragment>
elementi. Se gli elenchi di parametri di query della richiesta variano,
variazioni non verranno prese in considerazione nella chiave cache.
Un'alternativa è utilizzare la variabile request.querystring, che inserisce l'intera stringa di
letteralmente come parte della chiave cache. Tieni presente che, anche se questo metodo tiene conto
tutti i parametri, se l'ordine dei parametri varia da una richiesta all'altra,
sarà diverso. In altre parole, param1=value1¶m2=value2
e
param2=value2¶m1=value1
non restituiscono lo stesso valore di chiave cache.
Per un elenco delle variabili che puoi utilizzare, consulta Riferimento per le variabili.
Utilizzo di <Scope> e <Prefisso>
Gli elementi <Scope>
e <Prefix>
consentono di
aumenta la chiave con un prefisso dello spazio dei nomi. I valori che rappresentano vengono anteposti alla cache
chiave.
Per impostazione predefinita viene utilizzato l'elemento <Scope>
. È un'enumerazione i cui valori
che va da quella più generica a quella più ristretta, con il valore predefinito più ristretto. Questo valore predefinito viene utilizzato a meno che
specifichi un altro valore o specifichi un valore di elemento <Prefix>
. Puoi
sostituisci il valore <Scope>
utilizzando un elemento <Prefix>
e
quindi specifica un valore personalizzato
per lo spazio dei nomi.
Ad esempio, il valore <Scope>
"Globale" -- l'ambito più ampio -- rappresenta
il nome dell'organizzazione e dell'ambiente. Quindi se il deployment del proxy viene eseguito in un'organizzazione denominata
'miaazienda' e un ambiente denominato "prod", il valore visualizzato sarà
seguenti:
Configurazione | Risultato |
---|---|
<Scope>Global</Scope> |
mycompany__prod__ . |
Se utilizzi l'ambito globale con la chiave cache definita sopra, il risultato è che segue:
Configurazione | Risultato |
---|---|
<Scope>Global</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__hello__world . |
Come descritto nel criterio LookupCache, l'ambito può essere configurati per aumentare la specificità da Globale a Esclusivo. Un ambito Esclusivo è il modello e, di conseguenza, rappresenta il rischio minimo di collisioni degli spazi dei nomi all'interno di una determinata cache. Ogni voce della cache con un ambito esclusivo ha un prefisso nel formato seguente:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
Ad esempio, una chiave cache creata utilizzando il valore Esclusivo di <Scope>
sarà simile al seguente:
apifactory__test__weatherapi__16__default__apiAccessToken