Règle InvalidateCache

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

icône de la règle

Configure la suppression définitive des valeurs mises en cache.

Cette règle est destinée à être utilisée pour une mise en cache à court terme à usage général. Elle est utilisée conjointement avec la règle PopulateCache (pour l'écriture d'entrées) et la règle LookupCache (pour la lecture des entrées du cache).

Pour la mise en cache des réponses des ressources de backend, consultez la règle ResponseCache .

Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.

Documentation de référence des éléments

Vous trouverez ci-dessous la liste des éléments que vous pouvez configurer pour cette règle.

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

Attributs <InvalidateCache>

Le tableau suivant décrit les attributs communs à tous les éléments parents des règles :

Attribut Description Par défaut Presence
name

Nom interne de la règle. La valeur de l'attribut name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion, en utilisant un nom différent, en langage naturel.

N/A Obligatoire
continueOnError

Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles.

Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir également :

false Facultatif
enabled

Définissez sur true pour appliquer la règle.

Définissez sur false pour désactiver la règle. La stratégie ne sera pas appliquée, même si elle reste associée à un flux.

true Facultatif
async

Cet attribut est obsolète.

false Obsolète

Élément <DisplayName>

Utilisez-le, en plus de l'attribut name, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent, en langage naturel.

<DisplayName>Policy Display Name</DisplayName>
Par défaut

N/A

Si vous omettez cet élément, la valeur de l'attribut name de la règle est utilisée.

Presence Facultatif
Type Chaîne

Élément <CacheContext>/<APIProxyName>

Spécifie le nom de l'application qui a ajouté l'entrée de cache.

<APIProxyName>application_that_added_the_entry</APIProxyName>

Attributs

Attribut Description Par défaut Presence Type
ref Variable avec le nom de l'application. N/A Facultatif Chaîne

Élément <CacheContext>

Spécifie comment créer une clé de cache lorsque la valeur de l'élément Prefix n'est pas définie, ou comment vider les entrées de cache ajoutées par un autre proxy d'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>

Permet de créer la clé CacheKey. Les valeurs APIProxyName, ProxyName et TargetName sont obligatoires lorsqu'un préfixe CacheKey (c'est-à-dire un préfixe personnalisé) n'est pas utilisé pour vider les entrées de cache ajoutées par un autre proxy d'API.

Élément <CacheKey>

Configure un pointeur unique vers un élément de données stocké dans le cache.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Valeur par défaut :

N/A

Présence :

Obligatoire

Type :

N/A

<CacheKey> crée le nom de chaque élément de données stocké dans le cache.

Au moment de l'exécution, les valeurs <KeyFragment> sont précédées de la valeur de l'élément <Scope> ou de la valeur <Prefix>. Par exemple, les résultats suivants génèrent une clé de cache UserToken__apiAccessToken__<value_of_client_id> :

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

Vous utilisez conjointement l'élément <CacheKey> avec <Prefix> et <Scope>. Pour en savoir plus, consultez la page Utiliser des clés de cache.

Élément <CacheResource>

Indique le cache où les messages doivent être stockés.

Omettez complètement cet élément si cette règle (et vos règles PopulateCache et LookupCache correspondantes) utilisent le cache partagé inclus.

<CacheResource>cache_to_use</CacheResource>

Valeur par défaut :

N/A

Présence :

Facultatif

Type :

Chaîne

Pour en savoir plus sur la configuration des caches, consultez la page Mise en cache à usage général.

Élément <CacheKey>/<KeyFragment>

Spécifie une valeur qui doit être incluse dans la clé de cache. Spécifiez une variable à déréférencer avec l'attribut ref, ou une valeur fixe.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Valeur par défaut :

N/A

Présence :

Facultatif

Type :

N/A

Au moment de l'exécution, Apigee crée la clé de cache en ajoutant la valeur obtenue à partir de l'élément <Scope> ou de l'élément <Prefix> à une concaténation des valeurs résolues de chacun des éléments <KeyFragment>. Pour en savoir plus, consultez la page Utiliser des clés de cache.

Attributs

Attribut Description Par défaut Presence Type
ref Variable à partir de laquelle obtenir la valeur. Ne doit pas être utilisé si cet élément contient une valeur littérale. N/A Facultatif Chaîne

Élément <CacheKey>/<Prefix>

Spécifie une valeur à utiliser comme préfixe de clé de cache.

<Prefix>prefix_string</Prefix>

Valeur par défaut :

N/A

Présence :

Facultatif

Type :

Chaîne

Un élément <Prefix> remplace tout élément <Scope>.

Au moment de l'exécution, Apigee crée la clé de cache en ajoutant la valeur obtenue à partir de l'élément <Scope> ou de l'élément <Prefix> à une concaténation des valeurs résolues de chacun des éléments <KeyFragment>. Pour en savoir plus, consultez la page Utiliser des clés de cache.

Élément <CacheContext>/<ProxyName>

Indique le nom du proxy pour lequel les données ont été mises en cache.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

Valeur par défaut :

N/A

Présence :

Facultatif

Type :

Chaîne

Attributs

Attribut Description Par défaut Presence Type
ref Variable à partir de laquelle obtenir la valeur. Ne doit pas être utilisé si cet élément contient une valeur littérale. N/A Facultatif Chaîne

Élément <PurgeChildEntries>

La valeur true permet de supprimer définitivement les entrées de cache qui partagent la même valeur <Prefix> configurée pour cette règle, même si les instances de la règle PopulateCache qui ont chargé ces éléments dans le cache ont également utilisé divers éléments <KeyFragment>.

L'invalidation de toutes les entrées de cache de la même valeur de préfixe vous permet de supprimer définitivement plusieurs entrées associées en même temps.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

Valeur par défaut :

false

Présence :

Facultatif

Type :

Booléen

Élément <Scope>

Énumération permettant de créer un préfixe pour une clé de cache lorsqu'un élément <Prefix> n'est pas fourni dans l'élément <CacheKey>.

<Scope>scope_enumeration</Scope>

Valeur par défaut :

"Exclusive"

Présence :

Facultatif

Type :

Chaîne

Le paramètre <Scope> détermine une clé de cache précédée selon la valeur <Scope>. Par exemple, une clé de cache prend le format suivant lorsque le champ d'application est défini sur Exclusive :

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

Si un élément <Prefix> figure dans <CacheKey>, il remplace la valeur de l'élément <Scope>. Les valeurs valides pour l'élément <Scope> sont présentées ci-dessous.

Pour en savoir plus, consultez la page Utiliser des clés de cache.

Valeurs acceptables

Valeur du champ d'application Description
Global

La clé de cache est partagée entre tous les proxys d'API déployés dans l'environnement. La clé de cache prend un préfixe au format orgName __ envName.

Si vous définissez une entrée <CacheKey> avec l'apiAccessToken <KeyFragment> et un champ d'application <Global>, chaque entrée est stockée en tant que orgName__envName__apiAccessToken, suivie de la valeur sérialisée du jeton d'accès. Pour un proxy d'API déployé dans un environnement appelé "test" dans une organisation appelée "apifactory", les jetons d'accès sont stockés sous la clé de cache suivante : apifactory__test__apiAccessToken.

Application

Le nom du proxy d'API est utilisé comme préfixe.

La clé de cache prend un préfixe au format orgName__envName__applicationName.

Proxy

La configuration ProxyEndpoint est utilisée comme préfixe.

La clé de cache prend un préfixe au format orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName.

Target

La configuration TargetEndpoint est utilisée comme préfixe.

La clé de cache prend un préfixe au format orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName.

Exclusive

Valeur par défaut. C'est la plus spécifique et présente donc un risque minimal de conflits d'espaces de noms dans un cache donné.

Le préfixe prend l'une des deux formes suivantes :

  • Si la règle est associée au flux ProxyEndpoint, le préfixe prend la forme ApiProxyName_ProxyEndpointName.
  • Si la règle est associée à TargetEndpoint, le préfixe prend le format ApiProxyName_TargetName.

La clé de cache prend un préfixe au format orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName.

Par exemple, la chaîne complète peut ressembler à ceci :

apifactory__test__weatherapi__16__default__apiAccessToken
.

Élément <CacheContext>/<TargetName>

Spécifie le nom du point de terminaison cible pour lequel les données ont été mises en cache.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

Valeur par défaut :

N/A

Présence :

Facultatif

Type :

Chaîne

Attributs

Attribut Description Par défaut Presence Type
ref Variable à partir de laquelle obtenir la valeur. Ne doit pas être utilisé si cet élément contient une valeur littérale. N/A Facultatif Chaîne

Remarques sur l'utilisation

La mise en cache à usage général avec les règles PopulateCache, LookupCache et InvalidateCache utilise soit un cache que vous configurez, soit un cache partagé inclus par défaut. Dans la plupart des cas, le cache partagé sous-jacent devrait répondre à vos besoins. Pour utiliser ce cache, il vous suffit d'omettre l'élément <CacheResource>.

Pour en savoir plus sur la configuration des caches, consultez la page Mise en cache à usage général. Pour plus d'informations sur le magasin de données sous-jacent, consultez la page Composants internes du cache.

Codes d'erreur

Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Préfixe de code d'erreur

ND

Erreurs d'exécution

Cette règle ne génère aucune erreur d'exécution.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidCacheResourceReference Cette erreur se produit si l'élément <CacheResource> de la règle InvalidateCache est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé.
CacheNotFound Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique.

Variables de panne

ND

Exemple de réponse d'erreur

ND