Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X. info
Configure la façon dont les valeurs mises en cache doivent être récupérées lors de l'exécution.
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 de remplissage de cache (pour l'écriture des entrées) et la règle d'invalidation de cache (pour la validation des entrées).
Pour la mise en cache des réponses des ressources de backend, consultez la règle de réponse du cache.
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.
<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>
Un cache partagé est inclus par défaut. Pour utiliser le cache partagé, omettez l'élément <CacheResource>
dans la configuration de cette règle.
Pour plus d'informations sur le magasin de données sous-jacent, consultez la page Composants internes du cache. Pour en savoir plus sur la configuration des caches, consultez la section Créer et modifier un cache d'environnement.
Attributs <LookupCache>
Le tableau suivant décrit les attributs communs à tous les éléments parents des règles :
Attribut | Description | Par défaut | Présence |
---|---|---|---|
name |
Nom interne de la règle. La valeur de l'attribut Vous pouvez également utiliser l'élément |
ND | Valeur |
continueOnError |
Définissez sur Définissez sur |
faux | Facultatif |
enabled |
Définissez sur Définissez sur |
vrai | Facultatif |
async |
Cet attribut est obsolète. |
faux | 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 |
ND Si vous omettez cet élément, la valeur de l'attribut |
---|---|
Présence | Facultatif |
Type | Chaîne |
Élément <AssignTo>
Spécifie la variable dans laquelle l'entrée du cache est attribuée après avoir récupéré le cache. La variable doit être accessible en écriture. Si la recherche dans le cache ne récupère pas de valeur, la variable n'est pas définie.
<AssignTo>variable_to_receive_cached_value</AssignTo>
Valeur par défaut : |
N/A |
Présence : |
Requis |
Type : |
Chaîne |
É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 : |
Requis |
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 <CacheLookupTimeoutInSeconds>
Indique le nombre de secondes après lequel une recherche dans le cache ayant échoué est considérée comme un défaut de cache. Si cela se produit, le flux reprend le long du chemin de défaut de cache.
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
Valeur par défaut : |
30 |
Présence : |
Facultatif |
Type : |
Entier |
Élément <CacheResource>
Indique le cache où les messages doivent être stockés.
Omettez cet élément si cette règle (et vos règles PopulateCache et InvalidateCache correspondantes) utilise 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 Créer et modifier un cache d'environnement.
Élément <CacheKey>/<KeyFragment>
Spécifie une valeur à inclure dans la clé de cache, créant ainsi un espace de noms pour les requêtes correspondantes aux réponses mises en cache.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
Valeur par défaut : |
N/A |
Présence : |
Facultatif |
Type : |
N/A |
Il peut s'agir d'une clé (un nom statique que vous fournissez) ou d'une valeur (un ensemble d'entrées dynamique faisant référence à une variable). Tous les fragments spécifiés combinés (plus le préfixe) sont concaténés pour créer la clé de cache.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
Vous utilisez conjointement l'élément <KeyFragment>
avec <Prefix>
et <Scope>
. Pour en savoir plus, consultez la page Utiliser des clés de cache.
Attributs
Attribut | Type | Valeur par défaut | Obligatoire | Description |
---|---|---|---|---|
ref | chaîne | Non |
Variable à partir de laquelle obtenir la valeur. Ne doit pas être utilisée si cet élément contient une valeur littérale. |
É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 |
Utilisez cette valeur à la place de <Scope>
lorsque vous souhaitez spécifier votre propre valeur plutôt qu'une valeur énumérée <Scope>
. Si cette valeur est définie, <Prefix>
ajoute la valeur de la clé de cache pour les entrées écrites dans le cache. La valeur de l'élément <Prefix>
remplace celle de l'élément <Scope>
.
Vous utilisez conjointement l'élément <Prefix>
avec <CacheKey>
et <Scope>
. Pour en savoir plus, consultez la page Utiliser des clés de cache.
É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 se présente sous la forme suivante lorsque le champ d'application est défini sur Exclusive
:
orgName__envName__applicationName__proxy|TargetName__
[ serializedCacheKey ].
Si un élément <Prefix>
figure dans <CacheKey>
, il remplace la valeur de l'élément <Scope>
. Les valeurs valides incluent les énumérations ci-dessous.
Vous utilisez conjointement l'élément <Scope>
avec <CacheKey>
et <Prefix>
. Pour en savoir plus, consultez la page Utiliser des clés de cache.
Valeurs acceptables
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 |
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__proxyEndpointName. |
Target |
La configuration TargetEndpoint est utilisée comme préfixe. La clé de cache prend un préfixe au format orgName__envName__applicationName__targetEndpointName. |
Exclusive |
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 :
La clé de cache prend un préfixe au format orgName__envName__applicationName__proxyNameITargetName. Par exemple, la chaîne complète peut ressembler à ceci : apifactory__test__weatherapi__16__default__apiAccessToken |
Remarques sur l'utilisation
Utilisez cette règle pour la mise en cache à usage général. Lors de l'exécution, la règle LookupCache récupère une valeur du cache en attribuant cette valeur à la variable spécifiée avec l'élément AssignTo (si aucune valeur n'est récupérée, la variable n'est pas définie). La règle recherche la valeur basée sur une clé de cache créée via une configuration qui combine les éléments CacheKey et Scope. En d'autres termes, pour récupérer une valeur particulière ajoutée au cache par une règle PopulateCache, votre règle LookupCache doit définir des éléments liés à la clé de cache de la même manière que la règle PopulateCache.
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 le cache par défaut, omettez simplement l'élément <CacheResource>
.
Pour en savoir plus sur la configuration des caches, consultez la page Créer et modifier un cache d'environnement. Pour plus d'informations sur le magasin de données sous-jacent, consultez la page Composants internes du cache.
Variables de flux
Les variables de flux peuvent être utilisées pour configurer le comportement d'exécution dynamique des règles et des flux en fonction des en-têtes HTTP, du contenu des messages ou du contexte disponible dans le flux. Pour en savoir plus sur les variables de flux, consultez la documentation de référence sur les variables.
Les variables de flux prédéfinies suivantes sont disponibles après la personnalisation du comportement du cache que vous définissez dans une règle LookupCache.
Variables | Type | Autorisation | Description |
---|---|---|---|
lookupcache.{policy-name}.cachename | Chaîne | En lecture seule | Renvoie le nom du cache utilisé dans la règle. |
lookupcache.{policy-name}.cachekey | Chaîne | En lecture seule | Renvoie la clé utilisée. |
lookupcache.{policy-name}.cachehit | Booléen | En lecture seule | La valeur est "True" si la règle a trouvé une valeur pour la clé de cache spécifiée. |
lookupcache.{policy-name}.assignto | Chaîne | En lecture seule | Renvoie la variable à laquelle le cache est attribué. |
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
N/A
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 | Solution |
---|---|---|
InvalidCacheResourceReference |
Cette erreur se produit si l'élément <CacheResource> est défini sur un nom qui n'existe pas dans l'environnement dans lequel le proxy d'API est déployé. |
build |
InvalidTimeout |
Si l'élément <CacheLookupTimeoutInSeconds> est défini sur un nombre négatif, le déploiement du proxy d'API échoue. |
build |
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. | build |
Variables de panne
ND
Exemple de réponse d'erreur
N/A