Risoluzione degli errori di deployment dei criteri della cache di ricerca

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

InvalidTimeout

Messaggio di errore

Il deployment del proxy API tramite l'UI o l'API di gestione perimetrale non riesce e genera questo messaggio di errore:

Error Saving Revision revision_number
CacheLookupTimeoutInSeconds value value should be greater than zero.

Esempio di messaggio di errore

Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.

Screenshot di errore di esempio

Causa

Se l'elemento <CacheLookupTimeoutInSeconds> di un criterio LookupCache è impostato su un numero negativo, il deployment del proxy API non riesce.

Ad esempio, se l'elemento <CacheLookupTimeoutInSeconds> è -1, il deployment del proxy API non riesce.

Diagnostica

  1. Identifica il valore non valido specificato per l'elemento <CacheLookupTimeoutInSeconds> nel criterio LookupCache. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il valore non valido utilizzato per l'elemento <CacheLookupTimeoutInSeconds> è -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Esamina tutti i criteri LookupCache nello specifico proxy API in cui si è verificato l'errore. Potrebbero essere presenti uno o più criteri LookupCache in cui viene specificato l'elemento <CacheLookupTimeoutInSeconds>. Identifica la norma LookUpCache in cui viene specificato il valore non valido (identificato nel passaggio 1 sopra) per l'elemento <CacheLookupTimeoutInSeconds>.

    Ad esempio, la seguente configurazione di criteri specifica il valore di <CacheLookupTimeoutInSeconds> di -1, che corrisponde al messaggio di errore:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. Se <CacheLookupTimeoutInSeconds> viene specificato come numero intero negativo, è questo il motivo dell'errore.

Risoluzione

Assicurati che il valore dell'elemento <CacheLookupTimeoutInSeconds> del criterio LookupCache sia sempre specificato come numero intero non negativo.

Per correggere il criterio LookupCache di esempio mostrato sopra, puoi modificare l'elemento <CacheLookupTimeoutInSeconds> in 30.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
    <DisplayName>LookupCache-Token</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.queryparam.client_id"/>
    </CacheKey>
    <CacheResource>tokencache</CacheResource>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSec>3600</TimeoutInSec>
    </ExpirySettings>
    <AssignTo>usertoken</AssignTo>
</LookupCache>

InvalidCacheResourceReference

Messaggio di errore

Il deployment del proxy API tramite l'UI o l'API di gestione perimetrale non riesce e genera 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:ResponseCache;Organization:[organization];Environment:[environment]

Esempio di messaggio di errore

Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition LookupCache-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> è impostato su un nome che non esiste nell'ambiente in cui viene eseguito il deployment del proxy API.

Diagnostica

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

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Esamina tutti i criteri LookupCache nello specifico proxy API in cui si è verificato l'errore. Identifica il criterio LookupCache specifico in cui è specificata la cache non valida (identificata nel passaggio 1) nell'elemento <CacheResource>.

    Ad esempio, il seguente criterio specifica il valore di <CacheResource> come tokencache, che corrisponde al messaggio di errore:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <CacheLookupTimeoutInSeconds/>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. Verifica se la cache (determinata nel passaggio 1) è stata definita nell'ambiente specifico (identificato nel passaggio 1).

    Nell'interfaccia utente perimetrale, vai ad AMMINISTRAZIONE > Ambiente > test e controlla se la cache esiste nella scheda Cache di Configurazione dell'ambiente. Se la cache non esiste, è questo il motivo dell'errore.

    Ad esempio, nello screenshot di seguito 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 LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
    

Risoluzione

Assicurati che il nome della cache specificato nell'elemento <CacheResource> sia stato creato nell'ambiente in cui vuoi eseguire il deployment del proxy API.

Per informazioni su come creare la cache, consulta Creazione e modifica di una cache dell'ambiente.

CacheNotFound

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API di gestione perimetrale genera un messaggio di errore simile al seguente e lo stato del deployment del proxy API è contrassegnato come deployment parziale:

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

Esempio di messaggio di errore

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 è stata creata su un determinato componente Message Processor.

Risoluzione

Se sei un utente Private Cloud, segui le istruzioni riportate di seguito:

  1. Elenca i deployment dei 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

    Esempio di output

    {
      "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 hai riscontrato l'errore steps.cache.CacheNotFound. Identifica il nome host/indirizzo IP del processore di messaggi associato 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 del Public Cloud o se il problema persiste per il Private Cloud, contatta l'Assistenza Apigee per ricevere supporto.