Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Consente di configurare la modalità di scrittura dei valori memorizzati nella cache in fase di runtime.
Il criterio Compila cache è progettato per scrivere voci in una cache per uso generico a breve termine. È utilizzato insieme alla funzionalità Lookup Criterio della cache (per la lettura delle voci della cache) e Annulla convalida criterio Cache (per voci non valide).
Per memorizzare nella cache le risposte delle risorse di backend, consulta Criterio della cache delle risposte.
Riferimento elemento
Di seguito sono elencati gli elementi che puoi configurare su questo criterio.
<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1"> <DisplayName>Populate Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSeconds>300</TimeoutInSeconds> </ExpirySettings> <Source>flowVar</Source> </PopulateCache>
<PopulateCache> attributi
La tabella seguente descrive gli attributi comuni a tutti gli elementi principali del criterio:
Attributo | Descrizione | Predefinito | Presenza |
---|---|---|---|
name |
Il nome interno del criterio. Il valore dell'attributo Se vuoi, puoi utilizzare l'elemento |
N/D | Obbligatorio |
continueOnError |
Imposta il valore su Imposta su |
falso | Facoltativo |
enabled |
Imposta il valore su Imposta |
true | Facoltativo |
async |
Questo attributo è obsoleto. |
falso | Deprecato |
<DisplayName> elemento
Da utilizzare in aggiunta all'attributo name
per etichettare il criterio in
editor proxy della UI di gestione con un nome diverso e in linguaggio naturale.
<DisplayName>Policy Display Name</DisplayName>
Predefinito |
N/D Se ometti questo elemento, il valore dell'attributo |
---|---|
Presenza | Facoltativo |
Tipo | Stringa |
<CacheKey> elemento
Configura un puntatore univoco a un dato archiviato nella cache.
La dimensione delle chiavi cache è limitata a 2 kB.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
Predefinita: |
N/D |
Presenza: |
Obbligatorio |
Tipo: |
N/D |
<CacheKey>
genera il nome di ogni dato archiviato nell'
.
In fase di runtime, i valori <KeyFragment>
vengono anteposti al
Valore dell'elemento <Scope>
o valore <Prefix>
. Ad esempio,
la seguente determina la creazione di una chiave cache
UserToken__apiAccessToken__
<value_of_client_id>:
<CacheKey> <Prefix>UserToken</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey>
Utilizzi l'elemento <CacheKey>
in combinazione con
<Prefix>
e <Scope>
. Per ulteriori informazioni, vedi Utilizzo delle chiavi cache.
<CacheResource> elemento
Specifica la cache in cui devono essere archiviati i messaggi.
Ometti completamente questo elemento se questo criterio (e le risorse LookupCache e I criteri InvalidateCache) stanno utilizzando la cache condivisa inclusa.
<CacheResource>cache_to_use</CacheResource>
Predefinita: |
N/D |
Presenza: |
Facoltativo |
Tipo: |
Stringa |
Per ulteriori informazioni sulla configurazione delle cache, consulta Creare e modificare un ambiente Cache.
<CacheKey>/<KeyFragment> elemento
Specifica un valore che deve essere incluso nella chiave cache, creando uno spazio dei nomi per la corrispondenza alle risposte memorizzate nella cache.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
Predefinita: |
N/D |
Presenza: |
Facoltativo |
Tipo: |
N/D |
Può essere una chiave (un nome statico da te fornito) o un valore (una voce dinamica impostata mediante che fa riferimento a una variabile). Tutti i frammenti specificati combinati (più il prefisso) sono concatenati in per creare la chiave cache.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
Utilizzi l'elemento <KeyFragment>
in combinazione con
<Prefix>
e <Scope>
. Per ulteriori informazioni, vedi Utilizzo delle chiavi cache.
Attributi
Attributo | Tipo | Predefinito | Obbligatorio | Descrizione |
---|---|---|---|---|
riferimento | stringa | No |
La variabile da cui ottenere il valore. Non deve essere utilizzato se questo elemento contiene un valore letterale. |
<CacheKey>/<Prefix> elemento
Specifica un valore da utilizzare come prefisso della chiave cache.
<Prefix>prefix_string</Prefix>
Predefinita: |
N/D |
Presenza: |
Facoltativo |
Tipo: |
Stringa |
Utilizza questo valore anziché <Scope>
quando vuoi specificare un valore personale
anziché un valore enumerato <Scope>
. Se definito,
<Prefix>
antepone il valore della chiave cache per le voci scritte nella cache. R
Il valore dell'elemento <Prefix>
sostituisce un elemento <Scope>
valore.
Utilizzi l'elemento <Prefix>
in combinazione con
<CacheKey>
e <Scope>
. Per ulteriori informazioni, vedi Utilizzo delle chiavi cache.
<ExpirySettings> elemento
Specifica quando deve scadere una voce della cache. Quando
presente, <TimeoutInSeconds>
override
sia <TimeOfDay>
che <ExpiryDate>
.
<ExpirySettings> <!-- use exactly one of the following child elements --> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
Predefinita: |
N/D |
Presenza: |
Obbligatorio |
Tipo: |
N/D |
Elementi secondari di <ExpirySettings>
Utilizza esattamente un elemento secondario. La tabella seguente fornisce una descrizione degli elementi secondari di
<ExpirySettings>
:
Elemento secondario | Descrizione |
---|---|
<TimeoutInSeconds> |
Il numero di secondi dopo il quale una voce della cache deve scadere. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> Questo elemento sostituisce l'elemento |
<ExpiryDate> |
Specifica la data in cui una voce della cache deve scadere. Specifica una stringa nel formato
<ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> Se la data specificata è nel passato, la norma applicherà la durata massima per la voce memorizzata nella cache. Questo periodo massimo è di 30 giorni. |
<TimeOfDay> |
Specifica l'ora del giorno in cui una voce della cache deve scadere.
Specifica una stringa nel formato <ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
Devi specificare solo uno dei possibili elementi secondari. Se specifichi più elementi,
l'ordine di precedenza è:TimeoutInSeconds
, ExpiryDate
,
TimeOfDay
.
Con ciascuno degli elementi secondari di <ExpirySettings>
precedenti,
se specifichi l'attributo facoltativo ref
nell'elemento secondario, il criterio
recupera il valore di scadenza dalla variabile di contesto denominata. Se la variabile non è definita,
Il criterio utilizza il valore di testo letterale dell'elemento figlio.
<Scope> elemento
Enumerazione utilizzata per costruire un prefisso per una chiave cache quando <Prefix>
non è fornito nell'elemento <CacheKey>
.
<Scope>scope_enumeration</Scope>
Predefinita: |
"Esclusiva" |
Presenza: |
Facoltativo |
Tipo: |
Stringa |
L'impostazione <Scope>
determina una chiave cache che viene anteposta in base al
il valore <Scope>
. Ad esempio, una chiave cache assume il seguente formato quando
l'ambito è impostato su Exclusive
:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]
Se un elemento <Prefix>
è presente in <CacheKey>
,
sostituisce un valore dell'elemento <Scope>
. I valori validi includono le enumerazioni
di seguito.
Utilizzi l'elemento <Scope>
in combinazione con
<CacheKey>
e <Prefix>
. Per ulteriori informazioni, vedi Utilizzo delle chiavi cache.
Valori accettabili
Global |
La chiave cache viene condivisa tra tutti i proxy API di cui è stato eseguito il deployment nell'ambiente. La chiave cache è anteposto nel formato orgName __ envName __. Se definisci una voce |
Application |
Il nome del proxy API viene utilizzato come prefisso. La chiave della cache è anteposta nel formato orgName__envName__apiProxyName. |
Proxy |
Come prefisso viene utilizzata la configurazione ProxyEndpoint. La chiave della cache viene anteposta nel formato orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName . |
Target |
Come prefisso viene utilizzata la configurazione TargetEndpoint. Chiave cache anteposta nel modulo orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName . |
Exclusive |
Predefinita. Si tratta della risposta più specifica e presenta quindi un rischio minimo di spazio dei nomi di conflitti all'interno di una determinata cache. Il prefisso può essere di due tipi:
Chiave cache anteposta nel modulo orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName Ad esempio, la stringa completa potrebbe essere simile alla seguente: apifactory__test__weatherapi__16__default__apiAccessToken. |
<Source> elemento
Specifica la variabile il cui valore deve essere scritto nella cache.
<Source>source_variable</Source>
Predefinita: |
N/D |
Presenza: |
Obbligatorio |
Tipo: |
Stringa |
Note sull'utilizzo
Utilizza questo criterio per la memorizzazione nella cache per uso generico. In fase di runtime,
Il criterio <PopulateCache>
scrive i dati dalla variabile specificata nel
<Source>
elemento alla cache specificata in
Elemento <CacheResource>
. Puoi usare <CacheKey>
,
<Scope>
e <Prefix>
per specificare una chiave che
che puoi utilizzare dal criterio <LookupCache>
per recuperare il valore. Utilizza la
Elemento <ExpirySettings>
da configurare quando deve scadere il valore memorizzato nella cache.
La memorizzazione nella cache per uso generico con i criteri RulesCache, il criterio LookupCache e il criterio InvalidateCache
una cache configurata da te o una cache condivisa inclusa per impostazione predefinita. Nella maggior parte dei casi,
la cache condivisa sottostante dovrebbe soddisfare le tue esigenze. Per utilizzare questa cache, ometti semplicemente
Elemento <CacheResource>
.
Limiti della cache: vari limiti della cache applicabili, come dimensioni nome e valore, numero totale di cache, numero di elementi contenuti in una cache e la scadenza.
Per scoprire di più sul datastore sottostante, consulta Informazioni interne della cache. Per scoprire di più sulla configurazione cache, consulta la sezione Creazione e modifica di un della cache di ambiente.
Informazioni sulla crittografia della cache
Edge per cloud pubblico: la cache è criptata solo in PCI e abilitati per HIPAA le tue organizzazioni. La crittografia per queste organizzazioni viene configurata durante l'organizzazione per eseguire il provisioning.
Codici di errore
Questa sezione descrive i codici e i messaggi di errore restituiti, nonché le variabili di errore impostate da Edge quando questo criterio attiva un errore. È importante sapere se stai sviluppando regole di errore per per gestire gli errori. Per saperne di più, consulta Cosa devi sapere sugli errori relativi ai criteri e sulla gestione di errore.
Errori di runtime
Questi errori possono verificarsi quando il criterio viene eseguito.
Codice di errore | Stato HTTP | Si verifica quando |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Una voce non può essere memorizzata nella cache. L'oggetto del messaggio che si sta memorizzando nella cache non è un'istanza di un Serializzabile. |
Errori di deployment
Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.
Nome errore | Causa | Correggi |
---|---|---|
InvalidCacheResourceReference |
Questo errore si verifica se l'elemento <CacheResource> del criterio RulesCache è impostato su
un nome che non esiste nell'ambiente in cui viene eseguito il deployment del proxy API. |
build |
CacheNotFound |
La cache specificata nell'elemento <CacheResource> non
esistono. |
build |
Variabili di errore
Queste variabili vengono impostate quando il criterio attiva un errore. Per ulteriori informazioni, vedi Cosa devi sapere sugli errori relativi alle norme.
Variabili | Dove | Esempio |
---|---|---|
fault.name="fault_name" |
fault_name è il nome dell'errore, come elencato nella precedente tabella Errori di runtime. Il nome dell'errore è l'ultima parte del codice di errore. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name è il nome specificato dall'utente del criterio che ha generato l'errore. | populatecache.POP-CACHE-1.failed = true |
Esempio di risposta di errore
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Esempio di regola di errore
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>