Política InvalidateCache

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

ícono de política

Configura cómo se deben borrar definitivamente de la caché los valores almacenados en caché.

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 LookupCache (para leer las entradas de caché).

Para almacenar en caché las respuestas de los recursos de backend, consulta la política de ResponseCache.

Esta política es una política extensible, y el uso de esta 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.

Referencia del elemento

En la siguiente lista, se enumeran los elementos que puedes configurar en esta política.

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

atributos <InvalidateCache>

En la siguiente tabla, se describen los atributos que son comunes a todos los elementos principales de las políticas:

Atributo Descripción Predeterminado Presencia
name

El nombre interno de la política. El valor del atributo name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

De forma opcional, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

N/A Obligatorio
continueOnError

Configúralo como false para mostrar un error cuando una política falla. Este es el comportamiento previsto para la mayoría de las políticas.

Configúralo como true para continuar con la ejecución del flujo incluso después de que una política falle. También consulta lo siguiente:

falso Opcional
enabled

Configúralo como true para aplicar la política.

Configúralo como false para desactivar la política. La política no se aplicará incluso si permanece adjunta a un flujo.

true Opcional
async

Este atributo dejó de estar disponible.

falso Obsoleta

Elemento <DisplayName>

Se usan además del atributo name para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

<DisplayName>Policy Display Name</DisplayName>
Predeterminada

N/A

Si omites este elemento, se usa el valor del atributo name de la política.

Presencia Opcional
Tipo String

elemento <CacheContext>/<APIProxyName>

Especifica el nombre de la aplicación que agregó la entrada de caché.

<APIProxyName>application_that_added_the_entry</APIProxyName>

Atributos

Atributo Descripción Predeterminado Presencia Tipo
ref Variable con el nombre de la aplicación N/A Opcional String

Elemento <CacheContext>

Especifica cómo construir una clave de caché cuando no se especifica un valor de elemento Prefix o para borrar las entradas de caché agregadas por otro proxy de API.

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

Se usa para construir CacheKey. Los valores de APIProxyName, ProxyName y TargetName son obligatorios cuando un prefijo de CacheKey (es decir, un prefijo personalizado) no se usa para borrar las entradas almacenadas en caché que agrega otro proxy de API.

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 <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 PopulateCache y LookupCache 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 Descripción Predeterminado Presencia Tipo
ref Variable de la que se obtiene el valor No debe usarse si este elemento contiene un valor literal. N/A Opcional String

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 <CacheContext>/<ProxyName>

Especifica el nombre del proxy para el que los datos se almacenaron en caché.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

Predeterminado:

N/A

Presencia:

Opcional

Tipo:

String

Atributos

Atributo Descripción Predeterminado Presencia Tipo
ref Variable de la que se obtiene el valor No debe usarse si este elemento contiene un valor literal. N/A Opcional String

Elemento <PurgeChildEntries>

true para borrar definitivamente las entradas de caché que comparten el mismo valor <Prefix> configurado para esta política, incluso si las instancias de la política PopulateCache que cargó esos elementos en la caché también usaron varias <KeyFragment>.

La invalidación de todas las entradas de caché del mismo valor de prefijo te permite borrar definitivamente varias entradas relacionadas a la vez.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

Predeterminado:

falso

Presencia:

Opcional

Tipo:

Booleano

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é podría tener el siguiente formato cuando el alcance se establece en Exclusive:

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__[serializatedCacheKey].

Si un elemento <Prefix> está presente en <CacheKey>, sustituye un valor de elemento <Scope>. Los valores válidos para el elemento <Scope> se muestran a continuación.

Para obtener más información, consulta Trabaja con claves de caché.

Valores aceptables

Valor del permiso Descripción
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 <CacheKey> con el apiAccessToken <KeyFragment> y un alcance <Global>, cada entrada se almacena como orgName__envName__apiAccessToken, seguida del valor serializado del token de acceso. Para un proxy de API implementado en un entorno llamado “test” en una organización llamada “apifactory”, los tokens de acceso se almacenarán en la siguiente clave de caché: apifactory__test__apiAccessToken.

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__deployedRevisionNumber__proxyEndpointName.

Target

La configuración TargetEndpoint se usa como prefijo.

La clave de caché se antepone en el formato orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName.

Exclusive

predeterminada. 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:

  • Si la política se adjunta al flujo ProxyEndpoint, el prefijo tiene el formato ApiProxyName_ProxyEndpointName.
  • Si se adjunta una política en TargetEndpoint, el prefijo tiene el formato ApiProxyName_TargetName.

La clave de caché se antepone en el formato orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

Por ejemplo, la string completa podría verse de la siguiente manera:

apifactory__test__weatherapi__16__default__apiAccessToken
.

elemento <CacheContext>/<TargetName>

Especifica el nombre del extremo de destino para el que se almacenaron los datos en la caché.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

Predeterminado:

N/A

Presencia:

Opcional

Tipo:

String

Atributos

Atributo Descripción Predeterminado Presencia Tipo
ref Variable de la que se obtiene el valor No debe usarse si este elemento contiene un valor literal. N/A Opcional String

Notas de uso

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 esta caché, solo omite 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é.

Códigos de error

En esta sección, se describen los mensajes de error y las variables de flujo que se configuran cuando esta política activa un error. Esta información es importante si deseas saber si desarrollas reglas de fallas para un proxy. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.

Prefijo del código de error

N/A

Errores de entorno de ejecución

Esta política no arroja ningún error de entorno de ejecución.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidCacheResourceReference Este error se genera si el elemento <CacheResource> en la política InvalidateCache se configura como un nombre que no existe en el entorno en el que se implementa el proxy de API.
CacheNotFound Este error se genera si la caché específica que se menciona en el mensaje de error no se creó en un componente específico del procesador de mensajes.

Variables con fallas

N/A

Ejemplo de respuesta de error

N/A