Résolution des problèmes de déploiement de la règle PopulateCache

InvalidCacheResourceReference

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

Error Deploying Revision revision_number to environment
Invalid cache resource reference [cache_resource] in Step definition [populate_cache_policy_name]. Context Revision:[revision_number];APIProxy:[apiproxy_name];Organization:[organization];Environment:[environment]

Exemple de message d'erreur

Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

Capture d'écran du message d'erreur

Erreur lors du déploiement de la révision 2 sur "test".

Cause

Cette erreur se produit si l'élément <CacheResource> de la règle PopulateCache est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé.

Diagnostic

  1. Identifiez le nom de la règle PopulateCache, le cache invalide utilisé dans l'élément <CacheResource> de la règle et l'environnement dans lequel l'erreur s'est produite. Vous trouverez tous ces éléments dans le message d'erreur. Par exemple, dans l'erreur ci-dessous, le nom de la règle PopulateCache est PopulateCache-Token, le nom du cache non valide est tokencache et le nom de l'environnement est test.

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Examinez le fichier XML de la règle PopulateCache et vérifiez que le nom du cache spécifié pour l'élément <CacheResource> correspond au message d'erreur.

    Dans cet exemple, le nom du cache spécifié dans l'élément <CacheResource> est tokencache :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <PopulateCache async="false" continueOnError="false" enabled="true" name="PopulateCache-Token">
        <DisplayName>PopulateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <Source>token</Source>
    </PopulateCache>
    
  3. Vérifiez si le cache (identifié à l'étape 1) a été défini dans l'environnement spécifique (identifié à l'étape 1).

    Dans l'interface utilisateur Apigee, accédez à ADMIN > Environnement > test et vérifiez si le cache existe dans l'onglet Caches de la page Configuration de l'environnement. Si le cache n'existe pas, il s'agit de la cause de l'erreur.

    Par exemple, dans la capture d'écran ci-dessous, notez que le cache nommé tokencache n'existe pas.

    Onglet "Caches" de la page "Configuration de l'environnement".

    Étant donné que le cache tokencache n'est pas défini dans l'environnement test, vous obtenez l'erreur suivante :

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    

Solution

Vérifiez que le cache spécifié dans l'élément <CacheResource> de la règle PopulateCache a été créé dans l'environnement où vous souhaitez déployer le proxy d'API.

CacheNotFound

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee génère un message d'erreur comme celui-ci, et l'état de déploiement du proxy d'API est marqué comme partiellement déployé :

Error: Cache : cache_resource, not found in organization : organization__environment.

Exemple de message d'erreur

Error Cache : configCache, not found in organization : kkalckstein-eval__test

Cause

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 message spécifique. Un processeur de messages est un composant interne qui traite le flux du trafic des API via Apigee.

Solution

Contactez l'assistance Apigee pour obtenir de l'aide.