Compilazione della risoluzione degli errori di deployment dei criteri della cache

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

InvalidCacheResourceReference

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:

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]

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Causa

Questo errore si verifica se l'elemento <CacheResource> del criterio RulesCache è impostato su un nome che non esiste nell'ambiente in cui viene eseguito il deployment del proxy API.

Diagnosi

  1. Identifica il nome del criterio PopulationCache, la cache non valida utilizzata nell'elemento <CacheResource> del criterio e l'ambiente in cui si è verificato l'errore. Puoi trovare tutti questi elementi nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio completionCache è PopulateCache-Token, il nome della cache non valida è tokencache e il nome dell'ambiente è test.

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Esamina l'errore XML del criterio FILLINCache e verifica se il nome della cache specificato per l'elemento <CacheResource> corrisponde al messaggio di errore.

    In questo esempio, il nome della cache specificato nell'elemento <CacheResource> è 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. Verifica se la cache (determinata nel passaggio 1) è stata definita nell'ambiente specifico (identificato nel passaggio 1).

    Nella UI di Edge, vai su AMMINISTRAZIONE > Ambiente > Esegui il test e controlla se la cache esiste nella scheda Cache di Configurazione dell'ambiente. Se la cache non esiste, ciò è la causa dell'errore.

    Ad esempio, nello screenshot seguente puoi notare che la cache denominata tokencache non esiste.

    Poiché la cache denominata tokencache non è definita nell'ambiente test, viene visualizzato l'errore:

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

Risoluzione

Assicurati che la cache specificata nell'elemento <CacheResource> del criterio PlacesCache sia stata creata nell'ambiente in cui vuoi eseguire il deployment del proxy API.

Per informazioni su come creare la cache, consulta Creazione e modifica della cache di un ambiente.

CacheNotFound

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente di Edge o l'API di gestione Edge genera un messaggio di errore simile al seguente e lo stato di deployment del proxy API è contrassegnato come eseguito parzialmente:

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

Messaggio di errore di esempio

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

Causa

Questo errore si verifica se la cache specifica menzionata nel messaggio di errore non è è stato creato su un componente specifico del processore di messaggi. Un processore di messaggi è un componente Edge interno che elabora il flusso di traffico API attraverso Apigee Edge.

Risoluzione

Se sei un utente Private Cloud, segui queste istruzioni:

  1. Elenca i deployment del proxy API e determina quali processori di messaggi presentano l'errore steps.cache.CacheNotFound.

    curl -u $USERID:$USERPASSWORD http://:8080/v1/organizations//environments//apis//revisions//deployments

    Output di esempio

      {
        "aPIProxy" : "TestCache",
        "environment" : [ {
          "configuration" : {
            "basePath" : "/",
            "configVersion" : "SHA-512:45d3f39783414d3859bf2dec4135d8f5f9960ee6b2d361db2799c82693a8e3f8b95dbbb37c547eb3c0a3819d8ca51727f390502bcaefdf1f113263521a9023b6",
            "steps" : [ ]
          },
          "name" : "prod",
          "server" : [ {
            "pod" : {
              "name" : "pod1",
              "region" : "us-central1"
            },
            "status" : "deployed",
            "type" : [ "message-processor" ],
            "uUID" : "f2e5e34a-5630-43a9-8fef-48a5b9da76d1"
          }, {
            "pod" : {
              "name" : "pod1",
              "region" : "us-central1"
            },
            "status" : "deployed",
            "type" : [ "message-processor" ],
            "uUID" : "879a6538-a5e0-4503-b142-9cb2b4e0623d"
          }, {
          "error" : "Cache : configCache, not found in organization : kkalckstein-eval__test",
          "errorCode" : "steps.cache.CacheNotFound",
          "status" : "error",
          "type" : [ "message-processor" ],
           "uUID" : "a8f9ce0b-c32d-48a9-b26c-9c75d8bf467d"
      },
      ...
          "state" : "deployed"
        } ],
        "name" : "2",
        "organization" : "kkalckstein-eval"
        ...
    
  2. Prendi nota degli UUID del processore di messaggi in cui riscontri l'errore steps.cache.CacheNotFound. Identifica il nome host/l'indirizzo IP del processore di messaggi corrispondente all'UUID.

  3. Accedi allo specifico processore di messaggi e riavvialo utilizzando il seguente comando:

    apigee-service edge-message-processor restart

Se sei un utente Public Cloud o se il problema persiste per Private Cloud, contatta l'Assistenza Apigee per ricevere assistenza.