Questa pagina si applica a Apigee e Apigee ibridi.
Visualizza documentazione di Apigee Edge.
Quando utilizzi i criteri della cache, garantisci l'univocità delle chiavi dei valori memorizzati nella cache configurazione delle chiavi di cache. Una chiave cache, insieme ad altri valori che puoi ti offre un modo affidabile per estrarre gli stessi dati che inserisci. Puoi utilizzare le chiavi cache con il criterio compileCache, criterio LookupCache, criterio InvalidateCache e Criterio diResponseCache.
Apigee utilizza i valori degli elementi di configurazione:
<Scope>
,
<CacheKey>
/<Prefix>
e
<CacheKey>
/<KeyFragment>
: per comporre un
per la chiave cache, che è un identificatore associato alla
il valore nella cache. La composizione delle chiavi della cache funziona allo stesso modo
i criteri della cache.
Con i seguenti elementi di configurazione dei criteri della cache, puoi creare chiave:
Elemento di configurazione cache | Descrizione |
---|---|
<Scope> o <CacheKey> /
<Prefix>
|
Utilizza <Scope> o
<Prefix> <CacheKey>
per configurare un prefisso da applicare alla chiave cache finale.
<Scope> enumera un elenco di valori predefiniti. La
Elemento <CacheKey> <Prefix>
sostituisce <Scope> con un tuo valore fisso
scegliere.
|
<CacheKey> /<KeyFragment> |
Usa uno o più <CacheKey>
<KeyFragment> elementi combinati per specificare un valore univoco
per le voci della cache. I valori KeyFragment possono essere valori letterali statici
o impostato dalle variabili.
|
Apigee compone la chiave cache di due parti: la parte con prefisso e la parte composita parte del frammento, separata da un doppio trattino basso.
PREFIX_PART__FRAGMENT_PART
La parte del prefisso viene determinata dall'elemento <Scope>
oppure
l'elemento <CacheKey>
<Prefix>
, se è
presenti. La parte del frammento è composta da ognuno dei valori di ogni
Elemento <KeyFragment>
, unito da trattini bassi doppi.
Con Criterio della cache di risposta, puoi aggiungere a questa chiave cache i valori della risposta Accetta intestazione.
Utilizzo di <CacheKey>
L'elemento <CacheKey>
configura il modo in cui Apigee creerà un'istanza
identificatore univoco (una chiave) per ogni voce di cache creata. Quando Apigee
recupera il valore memorizzato nella cache, utilizza la chiave cache per individuare il valore corretto.
Nel criterio ResponseCache, una configurazione definisce la chiave
la memorizzazione nella cache e il recupero. Nei criteri PopulationCache e LookupCache,
il criterio deve avere elementi <CacheKey>
identici per garantire
che un valore recuperato dalla cache corrisponda a un valore inserito.
L'elemento <CacheKey>
può includere un singolo elemento facoltativo
<Prefix>
nonché uno o più
<KeyFragment>
elementi. In fase di runtime, Apigee concatena
determinati da ogni parte con due trattini bassi tra loro per comporre
.
Ad esempio, la seguente configurazione crea il valore
myprefix__hello__world
per l'utilizzo nella chiave cache:
<CacheKey> <Prefix>myprefix</Prefix> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
Puoi configurare Apigee in modo che utilizzi una chiave cache composta dinamicamente
fare riferimento alla variabile in un elemento <KeyFragment>
, come
mostrato qui:
<KeyFragment ref="variable_name"/>
Ad esempio, per fare in modo che il valore della chiave cache includa il Content-Type del di richiesta, procedi nel seguente modo:
<KeyFragment ref="request.header.Content-Type"/>
Considera la seguente configurazione:
<CacheKey> <Prefix>system1</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
Se la variabile request.header.Content-Type
ha il valore
application/json
, verrà creata una chiave cache di
system1__apiAccessToken__application/json__bar
.
Puoi utilizzare variabili definite dalla piattaforma o personalizzate in una
Attributo ref
.
Chiavi cache derivate da parametri di ricerca
Utilizzo di variabili come request.queryparam.<queryparam_name> e request.querystring, puoi configurare una chiave cache in modo che includa delle parti della stringa di query di una richiesta. Ad esempio, il seguente URL utilizza due parametri di ricerca -- param1 e param2 -- che puoi utilizzare nella chiave cache:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
L'elemento <CacheKey>
può incorporare questi valori con un
configurazione come la seguente:
<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 le seguenti:
prefix_part__value1__value2
Invece di specificare più parametri di ricerca distinti, un'alternativa è
per utilizzare la variabile request.querystring
, che inserisce l'intera
stringa di parametri letteralmente come parte della chiave cache. Tieni presente che
mentre questo metodo tiene conto di tutti i parametri, se l'ordine
variano da una richiesta all'altra, la chiave sarà diversa.
In altre parole, param1=value1¶m2=value2
e
param2=value2¶m1=value1
non restituiscono la stessa cache
e un valore-chiave.
Utilizzo di <Scope> e <Prefisso>
Le <Scope>
e le <CacheKey>
/
Gli elementi <Prefix>
consentono di organizzare i valori memorizzati nella cache
in uno spazio dei nomi. Apigee antepone un valore derivato dalla chiave cache.
Il vantaggio di usare un ambito o un prefisso nella chiave cache è che
invalida tutti i valori che condividono un singolo prefisso, con una chiamata al
Criterio InvalidateCache.
Per impostazione predefinita viene utilizzato l'elemento <Scope>
. È una
enumerazione i cui valori variano da generico a ristretto, con il più stretto
predefinito. Viene utilizzato questo valore predefinito, a meno che non specifichi un altro valore o
specificare un valore dell'elemento <Prefix>
. Puoi eseguire l'override
<Scope>
utilizzando un valore <CacheKey>
/
<Prefix>
, quindi specifica un valore personalizzato per
con lo spazio dei nomi.
Ad esempio, il valore <Scope>
"Globale" -- la più ampia
ambito: rappresenta il nome dell'organizzazione e dell'ambiente. Quindi se il tuo proxy
implementato in un'organizzazione chiamata "mycompany" e un ambiente denominato
"prod", il valore iniziale risultante sarà il seguente:
mycompany__prod__[FRAGMENT_PART]
Come descritto nel criterio LookupCache, è possibile configurare l'ambito con una maggiore specificità, passando da Globale a Esclusivo. Un ambito Esclusivo è più specifici, il che comporta quindi un rischio minimo di collisioni degli spazi dei nomi all'interno di una determinata cache. Ogni voce della cache con un ambito esclusivo è preceduto da un prefisso il seguente modulo:
orgName__envName__apiProxyName__deployedRevisionNumber__nameof(proxyEndpoint|targetEndpoint)__[serializedCacheKey]
Di seguito sono riportati alcuni esempi. Presuppongono che la sedicesima revisione del proxy denominata "weatherapi" sono implementato in un'organizzazione chiamata "mycompany" e un ambiente denominato "prod" e il nome proxyEndpoint è "default" e il criterio della cache è collegato a un flusso nel proxyEndpoint.
Configurazione | Risultato |
---|---|
<Scope>Global</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__hello__world . |
<Scope>Exclusive</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__weatherapi__16__default__hello__world |
<Scope>Exclusive</Scope> <CacheKey> <Prefix>system1</Prefix> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
system1__hello__world |