Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Configura cómo se deben recuperar los valores almacenados en caché en el entorno de ejecución.
Esta política está diseñada para usarse el almacenamiento en caché a corto plazo de uso general. Se usa junto con la política PopulateCache (para escribir entradas) y la política InvalidateCache (para invalidar entradas).
Esta política es una política extensible, y el uso de esta política puede tener implicaciones de costo o uso, según tu licencia de Apigee. Para obtener información sobre los tipos de políticas y sus implicaciones de uso, consulta Tipos de políticas.
Para almacenar en caché las respuestas de los recursos de backend, consulta la política de ResponseCache.
Referencia del elemento
En la siguiente lista, se enumeran los elementos que puedes configurar en esta política.
<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
<DisplayName>Lookup Cache 1</DisplayName>
<Properties/>
<CacheKey>
<Prefix/>
<KeyFragment ref=""/>
</CacheKey>
<!-- Omit this element if you're using the included shared cache. -->
<CacheResource/>
<CacheLookupTimeoutInSeconds/>
<Scope>Exclusive</Scope>
<AssignTo>flowVar</AssignTo>
</LookupCache>Una caché compartida se incluye de forma predeterminada. Para usar la caché compartida, omite el elemento <CacheResource> en esta configuración de política.
Para obtener más información sobre el almacén de datos subyacente, consulta Objetos internos de la caché. Para obtener más información sobre la configuración de cachés, consulta el almacenamiento en caché de uso general.
Atributos de <LookupCache>
En la siguiente tabla se describen los atributos que son comunes a todos los elementos superiores de la política:
| Atributo | Descripción | Predeterminado | Presencia |
|---|---|---|---|
name |
El nombre interno de la política. El valor del atributo Opcionalmente, usa el elemento |
N/A | Obligatorio |
continueOnError |
Asigna el valor Asigna el valor |
falso | Opcional |
enabled |
Asigna el valor Selecciona |
true | Opcional |
async |
Este atributo está obsoleto. |
falso | Obsoleto |
Elemento <DisplayName>
Úsalo junto con el atributo name para etiquetar la política en el editor de proxy de la interfaz de gestión con un nombre diferente en lenguaje natural.
<DisplayName>Policy Display Name</DisplayName>
| Predeterminado |
N/A Si omite este elemento, se usará el valor del atributo |
|---|---|
| Presencia | Opcional |
| Tipo | Cadena |
Elemento <AssignTo>
Especifica la variable a la que se asigna la entrada de caché después de recuperarse de la caché. La variable se debe poder escribir. Si la búsqueda en caché no recupera un valor, no se establecerá la variable.
<AssignTo>variable_to_receive_cached_value</AssignTo>
|
Predeterminado: |
N/A |
|
Presencia: |
Obligatorio |
|
Tipo: |
String |
Elemento <CacheKey>
Configura un puntero único para un dato almacenado en la caché.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
|
Predeterminado: |
N/A |
|
Presencia: |
Obligatorio |
|
Tipo: |
N/A |
<CacheKey> construye el nombre de cada dato almacenado en la caché.
En el entorno de ejecución, los valores <KeyFragment> están precedidos del valor del elemento <Scope> o el valor <Prefix>. Por ejemplo, lo siguiente genera una clave de caché de UserToken__apiAccessToken__<value_of_client_id>:
<CacheKey>
<Prefix>UserToken</Prefix>
<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />
</CacheKey>Debes usar el elemento <CacheKey> junto con <Prefix> y <Scope>. Para obtener más información, consulta Trabaja con claves de caché.
Elemento<CacheLookupTimeoutInSeconds>
Especifica la cantidad de segundos después de los cuales una búsqueda en caché incorrecta se considerará un error de caché. Si esto ocurre, el flujo se reanuda en la ruta de acceso del error de caché.
<CacheLookupTimeoutInSeconds>12</CacheLookupTimeoutInSeconds>
|
Predeterminado: |
12 |
|
Presencia: |
Opcional |
|
Tipo: |
Entero |
Elemento<CacheResource>
Especifica la caché en la que se deben almacenar los mensajes.
Omite este elemento por completo si esta política (y las políticas InvalidateCache y PopulateCache correspondientes) usa la caché compartida incluida.
<CacheResource>cache_to_use</CacheResource>
|
Predeterminado: |
N/A |
|
Presencia: |
Opcional |
|
Tipo: |
String |
Para obtener más información sobre la configuración de cachés, consulta Almacenamiento en caché de uso general.
Elemento <CacheKey>/<KeyFragment>
Especifica un valor que se debe incluir en la clave de caché. Especifica una variable para quitar la referencia con el atributo ref o un valor fijo.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
|
Predeterminado: |
N/A |
|
Presencia: |
Opcional |
|
Tipo: |
N/A |
En el entorno de ejecución, Apigee crea la clave de caché anteponiendo el valor obtenido del elemento <Scope> o el elemento <Prefix> a una concatenación de los valores resueltos de cada uno de los elementos <KeyFragment>.
Para obtener más información, consulta Trabaja con claves de caché.
Atributos
| Atributo | Tipo | Predeterminado | Obligatorio | Descripción |
|---|---|---|---|---|
| ref | string | No |
Variable de la que se obtiene el valor No debe usarse si este elemento contiene un valor literal. |
Elemento <CacheKey>/<Prefix>
Especifica un valor para usar como prefijo de clave de caché.
<Prefix>prefix_string</Prefix>
|
Predeterminado: |
N/A |
|
Presencia: |
Opcional |
|
Tipo: |
String |
Un elemento <Prefix> anula cualquier elemento <Scope>.
En el entorno de ejecución, Apigee crea la clave de caché anteponiendo el valor obtenido del elemento <Scope> o el elemento <Prefix> a una concatenación de los valores resueltos de cada uno de los elementos <KeyFragment>.
Para obtener más información, consulta Trabaja con claves de caché.
Elemento <Scope>
Enumeración que se usa a fin de construir un prefijo para una clave de caché cuando no se proporciona un elemento <Prefix> en el elemento <CacheKey>.
<Scope>scope_enumeration</Scope>
|
Predeterminado: |
“Exclusivo” |
|
Presencia: |
Opcional |
|
Tipo: |
String |
La configuración <Scope> determina una clave de caché que se antepone según el valor <Scope>. Por ejemplo, una clave de caché tomaría la siguiente forma cuando el alcance se establece en Exclusive: orgName__envName__applicationName__proxy|TargetName__[serializedCacheKey ].
Si un elemento <Prefix> está presente en <CacheKey>, sustituye un valor de elemento <Scope>. Los valores válidos incluyen las enumeraciones a continuación.
Para obtener más información, consulta Trabaja con claves de caché.
Valores aceptables
Global |
La clave de caché se comparte en todos los proxies de API implementados en el entorno. La clave de caché se antepone en el formato orgName __ envName __. Si defines una entrada |
Application |
El nombre del proxy de la API se usa como prefijo. La clave de caché se antepone en el formato orgName__envName__applicationName. |
Proxy |
La configuración de ProxyEndpoint se usa como prefijo. La clave de caché se antepone en el formato orgName__envName__applicationName__proxyEndpointName. |
Target |
La configuración TargetEndpoint se usa como prefijo. La clave de caché se antepone en el formato orgName__envName__applicationName__targetEndpointName. |
Exclusive |
Predeterminado. Este es el más específico, por lo tanto, representa el riesgo mínimo de colisiones de espacio de nombres dentro de una caché determinada. El prefijo es uno de estos dos formatos:
La clave de caché se antepone en el formato orgName__envName__applicationName__proxyNameITargetName Por ejemplo, la string completa podría verse de la siguiente manera: apifactory__test__weatherapi__default__apiAccessToken |
Notas de uso
Usa esta política para el almacenamiento en caché de uso general. En el entorno de ejecución, la política LookupCache recupera un valor de la caché y asigna el valor a la variable que especificas con el elemento AssignTo (si no se recupera ningún valor, la variable no se establecerá). Busca el valor según una clave de caché creada a través de la configuración que combina los elementos CacheKey y Scope. En otras palabras, para recuperar un valor particular agregado a la caché mediante una política PopulateCache, tu política LookupCache debe tener elementos relacionados con la clave de caché configurados de la misma manera que la política PopulateCache.
El almacenamiento en caché de uso general con la política PopulateCache, la política LookupCache y la política InvalidateCache usan la caché que configuras o una caché compartida que se incluye de forma predeterminada. En la mayoría de los casos, la caché compartida subyacente debe satisfacer tus necesidades. Para usar la caché predeterminada, solo debes omitir el elemento <CacheResource>.
Para obtener más información sobre la configuración de cachés, consulta Almacenamiento en caché de uso general. Para obtener más información sobre el almacén de datos subyacente, consulta Objetos internos de la caché.
Variables de flujo
Las variables de flujo se pueden usar a fin de configurar el comportamiento del entorno de ejecución dinámico de las políticas y los flujos, según los encabezados HTTP, el contenido del mensaje, o el contexto disponible en el flujo. Para obtener más información sobre las variables de flujo, consulta Referencia de las variables de flujo.
Las siguientes variables de flujo predefinidas están disponibles después de personalizar el comportamiento de la caché que defines en una política LookupCache.
| Variables | Tipo | Permiso | Descripción |
|---|---|---|---|
| lookupcache.{policy-name}.cachename | String | Solo lectura | Muestra el nombre de la caché usada en la política. |
| lookupcache.{policy-name}.cachekey | String | Solo lectura | Muestra la clave usada. |
| lookupcache.{policy-name}.cachehit | Booleano | Solo lectura | Verdadero si la política encontró un valor para la clave de caché especificada. |
| lookupcache.{policy-name}.assignto | String | Solo lectura | Muestra la variable a la que está asignada la caché. |
Códigos de error
En esta sección se describen los mensajes de error y las variables de flujo que se definen cuando esta política activa un error. Es importante que conozcas esta información si vas a desarrollar reglas de errores para un proxy. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo gestionar los fallos.
Prefijo de código de error
N/A
Errores de tiempo de ejecución
Esta política no genera ningún error de tiempo de ejecución.
Errores de implementación
Estos errores pueden producirse al implementar un proxy que contenga esta política.
| Nombre del error | Causa | Solucionar |
|---|---|---|
InvalidCacheResourceReference |
Este error se produce si el elemento <CacheResource> se asigna a un nombre que no existe en el entorno en el que se está implementando el proxy de API. |
build |
InvalidTimeout |
Si el elemento <CacheLookupTimeoutInSeconds> tiene asignado un número negativo, la implementación del proxy de API fallará. |
build |
CacheNotFound |
Este error se produce si la caché específica mencionada en el mensaje de error no se ha creado en un componente Message Processor específico. | build |
Variables de error
N/A
Ejemplo de respuesta de error
N/A