Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Quando utilizzi le policy della cache, assicurati dell'unicità delle chiavi dei valori memorizzati nella cache configurando le chiavi cache. Una chiave cache, insieme ad altri valori che puoi configurare, ti offre un modo affidabile per recuperare gli stessi dati che hai inserito. Utilizzi le chiavi cache con le policy Popola cache, LookupCache, InvalidateCache e Cache delle risposte policy.
I valori degli elementi di configurazione:
<CacheKey>/<KeyFragment>, <Scope>, e
<Prefix> -- vengono concatenati per creare un identificatore associato a
il valore che inserisci nella cache. Utilizzi la stessa configurazione per recuperare il valore.
Con i seguenti elementi di configurazione della policy della cache, puoi creare una chiave cache:
| Elemento di configurazione della cache | Descrizione |
|---|---|
<CacheKey> / <KeyFragment> |
Utilizza gli elementi <CacheKey> <KeyFragment> combinati per specificare un identificatore univoco per le voci della cache. I valori KeyFragment possono essere valori letterali statici o
impostati da variabili. |
<Scope> o <Prefix> |
Utilizza gli elementi <Scope> o <Prefix> per assegnare un ulteriore
spazio dei nomi alle chiavi cache. <Scope> enumera un elenco di valori predefiniti.
L'elemento <Prefix> esegue l'override di <Scope> con un valore
a tua scelta. |
Questi valori vengono concatenati nel seguente formato, con <Scope> o
<Prefix> valori separati dai valori KeyFragment da doppi trattini bassi.
Anche più valori KeyFragment sono separati da doppi trattini bassi.
scope | prefix__keyfragment[__keyfragment]
Con la policy Cache delle risposte, puoi aggiungere facoltativamente questa chiave cache con i valori dell'intestazione Accept della risposta.
Utilizzo di <CacheKey>
L'elemento <CacheKey> configura il modo in cui Edge creerà un identificatore univoco
(una chiave) per ogni voce della cache che crea. Quando Edge recupera il valore memorizzato nella cache, utilizza la chiave cache
per individuare il valore corretto. Nella policy ResponseCache, una configurazione definisce la chiave
sia per la memorizzazione nella cache sia per il recupero. Nelle policy PopulateCache e LookupCache, ogni policy deve
avere elementi <CacheKey> identici per garantire che un valore recuperato dalla
cache corrisponda a un valore inserito.
L'elemento <CacheKey> può includere più
<KeyFragment> elementi. In fase di runtime, i valori specificati dagli elementi
<KeyFragment> vengono concatenati con due trattini bassi tra loro in
per formare parte della chiave cache.
Ad esempio, la seguente configurazione crea un valore di hello__world da utilizzare
nella chiave cache:
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey>Puoi anche utilizzare i valori delle variabili in una chiave cache facendo riferimento alla variabile in un
<KeyFragment> elemento, come mostrato di seguito:
<KeyFragment ref="variable_name"/>
Ad esempio, per fare in modo che il valore della chiave cache incorpori il tipo di contenuto del messaggio della richiesta, procedi nel seguente modo:
<KeyFragment ref="request.header.Content-Type"/>
Nella seguente configurazione, la variabile request.header.Content-Type ha il
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 la documentazione di riferimento sulle variabili .
Chiavi cache derivate dai parametri di query
Utilizzando variabili come request.queryparam.<queryparam_name> e request.querystring, puoi configurare una chiave cache in modo che includa parti della stringa di query di una richiesta. Ad esempio, il seguente URL utilizza due parametri di query, param1 e param2, che puoi utilizzare nella chiave cache:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
Il tuo elemento <CacheKey> può incorporare questi valori con una 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, come di seguito:
other_key_parts__value1__value2
Tieni presente che quando utilizzi le variabili per inserire i valori dei parametri, questi verranno
concatenati nell'ordine suggerito dall'ordine degli elementi <KeyFragment>. Inoltre,
tieni presente che Edge utilizzerà solo i valori a cui fai riferimento in modo specifico con
<KeyFragment> elementi. Se gli elenchi dei parametri di query della richiesta variano, le
variazioni non verranno prese in considerazione nella chiave cache.
Un'alternativa è utilizzare la variabile request.querystring, che inserisce l'intera stringa di
parametri letteralmente come parte della chiave cache. Tieni presente che, sebbene questo metodo tenga conto di
tutti i parametri, se l'ordine dei parametri varia da una richiesta all'altra, la
chiave sarà diversa. In altre parole, param1=value1¶m2=value2 e
param2=value2¶m1=value1 non generano lo stesso valore della chiave cache.
Per un elenco delle variabili che puoi utilizzare, consulta la documentazione di riferimento sulle variabili .
Utilizzo di <Scope> e <Prefix>
Gli elementi <Scope> e <Prefix> forniscono un modo per
aumentare la chiave con un prefisso dello spazio dei nomi. I valori che rappresentano vengono anteposti alla chiave cache
chiave.
L'elemento <Scope> viene utilizzato per impostazione predefinita. Si tratta di un'enumerazione i cui valori
vanno da ampio a stretto, con il più stretto come predefinito. Questo valore predefinito viene utilizzato a meno che
non specifichi un altro valore o un valore dell'elemento <Prefix>. Puoi
eseguire l'override del valore <Scope> utilizzando un elemento <Prefix> e
quindi specificare un valore personalizzato per lo spazio dei nomi.
Ad esempio, il valore <Scope> "Global" -- l'ambito più ampio -- rappresenta
il nome dell'organizzazione e dell'ambiente. Pertanto, se il proxy viene sottoposto a deployment in un'organizzazione denominata
"mycompany" e in un ambiente denominato "prod", il valore anteposto risultante sarà il
seguente:
| Configurazione | Risultato |
|---|---|
<Scope>Global</Scope> |
mycompany__prod__. |
Se utilizzi l'ambito Global con la chiave cache definita sopra, il risultato è il seguente:
| Configurazione | Risultato |
|---|---|
<Scope>Global</Scope>
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey> |
mycompany__prod__hello__world. |
Come descritto nella policy LookupCache, l'ambito può essere configurato per aumentare la specificità da Global a Exclusive. Un ambito Exclusive è il più specifico e quindi rappresenta un rischio minimo di collisioni di spazi dei nomi all'interno di una determinata cache. Ogni voce della cache con un ambito Exclusive ha il seguente prefisso:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
Ad esempio, una chiave cache creata utilizzando il valore Exclusive per <Scope>
avrebbe il seguente aspetto:
apifactory__test__weatherapi__16__default__apiAccessToken