Utilizzo delle chiavi di cache

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