Utilizzo delle chiavi di cache

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&param2=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&param2=value2 e param2=value2&param1=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