Risoluzione degli errori di deployment delle norme relative alla cache delle risposte

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

InvalidTimeout

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato 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 esempio dell'errore

Errore durante il salvataggio della revisione 2.

Causa

Se l'elemento <CacheLookupTimeoutInSeconds> di un criterio ResponseCache è impostato su un numero negativo, il deployment del proxy API non va a buon fine.

Ad esempio, se <CacheLookupTimeoutInSeconds> è -1, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il valore non valido utilizzato per l'elemento <CacheLookupTimeoutInSeconds> nel criterio ResponseCache. 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 tutte le norme ResponseCache nel proxy API specifico in cui si è verificato l'errore. Potrebbero essere presenti una o più policy ResponseCache in cui è specificato l'elemento <CacheLookupTimeoutInSeconds>.

    Ad esempio, la seguente configurazione della policy imposta <CacheLookupTimeoutInSeconds> su -1, che corrisponde a quanto riportato nel messaggio di errore:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
        <DisplayName>Response Cache-1</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.uri" type="string"/>
        </CacheKey>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <ExpiryDate/>
            <TimeOfDay/>
            <TimeoutInSec ref="">3600</TimeoutInSec>
        </ExpirySettings>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
    </ResponseCache>
    
  3. Se <CacheLookupTimeoutInSeconds> è specificato come numero intero negativo, questo è il motivo dell'errore.

Risoluzione

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

Per correggere la policy ResponseCache di esempio mostrata sopra, puoi modificare <CacheLookupTimeoutInSeconds> element in 30.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache-1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" type="string"/>
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSec ref="">3600</TimeoutInSec>
    </ExpirySettings>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
</ResponseCache>

InvalidCacheResourceReference

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato questo messaggio di errore:

Error Deploying Revision revision_number to environment
Invalid cache resource reference cache_resource in Step definition response_cache_policy_name. Context Revision:revision_number;APIProxy:ResponseCache;Organization:organization;Environment:environment

Esempio di messaggio di errore

Error Deploying Revision 2 to prod
Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod

Screenshot di esempio dell'errore

Errore durante il deployment della revisione 2 in produzione.

Causa

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

Diagnosi

  1. Identifica la cache non valida utilizzata nell'elemento <CacheResource> del criterio Cache di risposta 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 è itemscache e il nome dell'ambiente è prod.

    Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
    
  2. Esamina tutte le norme ResponseCache nel proxy API specifico in cui si è verificato l'errore. Identifica la policy ResponseCache specifica in cui la cache non valida (identificata nel passaggio 1) è specificata nell'elemento <CacheResource>.

    Ad esempio, la seguente policy specifica il valore di <CacheResource> come itemscache, che corrisponde a quello del messaggio di errore:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="ItemsResponseCache">
      <DisplayName>ItemsResponseCache</DisplayName>
      <Properties/>
      <CacheKey>
          <Prefix/>
          <KeyFragment ref="request.uri" type="string"/>
      </CacheKey>
      <CacheResource>itemscache</CacheResource>
      <Scope>Exclusive</Scope>
      <ExpirySettings>
          <ExpiryDate/>
          <TimeOfDay/>
          <TimeoutInSec ref="">3600</TimeoutInSec>
      </ExpirySettings>
      <SkipCacheLookup/>
      <SkipCachePopulation/>
    </ResponseCache>
    
  3. Verifica se la cache (determinata nel passaggio 2) è stata definita nell'ambiente specifico (identificato nel passaggio 1).

    Nell'interfaccia utente Apigee, vai a API > Configurazione ambiente e verifica se la cache esiste nella scheda Cache nell'ambiente specifico. Se la cache non esiste, questo è il motivo dell'errore.

    Ad esempio, nello screenshot riportato di seguito nota che la cache denominata itemscache non esiste.

    Scheda Cache di configurazione dell&#39;ambiente.

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

    Invalid cache resource reference does_not_exist in Step definition Response-Cache-1. Context Revision:2;APIProxy:ResponseCache;Organization:kkalckstein-eval;Environment:prod
    

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.

ResponseCacheStepAttachmentNotAllowedReq

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato questo messaggio di errore:

Error Deploying Revision revision_number to environment
Response cache step definition response_cache_policy_name can not be attached more than once in the request path.

Esempio di messaggio di errore

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the request path.

Screenshot di esempio dell'errore

Errore durante il deployment della revisione 2 per il test.

Causa

Questo errore si verifica se lo stesso criterio ResponseCache è collegato a più percorsi di richiesta all'interno di qualsiasi flusso di un proxy API.

Ad esempio, se hai la stessa policy ResponseCache collegata nel pre-flusso della richiesta sia degli endpoint proxy che di destinazione, si verifica questo errore.

Diagnosi

  1. Identifica il nome della policy ResponseCache allegata più di una volta. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore il nome della norma ResponseCache è Response‑Cache‑1.

    Error Deploying Revision 2 to test
    Response cache step definition Response-Cache-1 can not be attached more than once in the request path.
    
  2. Esamina tutti i flussi di richieste negli endpoint proxy e di destinazione del proxy API in cui si è verificato l'errore. Se la stessa norma ResponseCache è allegata a due o più flussi di richieste, questo è il motivo dell'errore.

    Nell'esempio seguente, la stessa policy ResponseCache Response-Cache-1 è configurata nel percorso della richiesta di PreFlow dell'endpoint proxy predefinito e in PreFlow dell'endpoint di destinazione predefinito:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Request>
        ...
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TargetEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request/>
            <Response/>
        </PreFlow>
        <PostFlow name="PostFlow">
            <Request>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Request>
        ...
    

Risoluzione

Assicurati che una policy ResponseCache sia collegata a un solo percorso di richiesta in tutti i flussi del proxy API.

Per correggere l'esempio mostrato sopra, rimuovi la norma ResponseCache Response-Cache-1 da uno dei due flussi di richieste.

ResponseCacheStepAttachmentNotAllowedResp

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato questo messaggio di errore:

Error Deploying Revision revision_number to environment
Response cache step definition response_cache_policy_name can not be attached more than once in the response path.

Esempio di messaggio di errore

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the response path.

Screenshot di esempio dell'errore

Errore durante il deployment della revisione 2 per il test.

Causa

Questo errore si verifica se lo stesso criterio ResponseCache è collegato a più percorsi di risposta all'interno di qualsiasi flusso di un proxy API.

Ad esempio, se hai la stessa norma ResponseCache collegata nel preflow di risposta sia degli endpoint proxy che di destinazione, si verifica questo errore.

Diagnosi

  1. Identifica il nome della policy ResponseCache allegata più di una volta. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore il nome della policy ResponseCache è Response-Cache-1.

    Error Deploying Revision 2 to test
    Response cache step definition Response-Cache-1 can not be attached more than once in the response path.
    
  2. Esamina tutti i flussi di richieste negli endpoint proxy e di destinazione del proxy API in cui si è verificato l'errore. Se la stessa norma ResponseCache è allegata a due o più flussi di risposta, questo è il motivo dell'errore.

    Nell'esempio seguente, la stessa policy ResponseCache Response-Cache-1 è configurata nel percorso di risposta di PreFlow dell'endpoint proxy predefinito e di PreFlow dell'endpoint di destinazione predefinito:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request>
                <Step>
                    <Name>Response-Cache</Name>
                </Step>
            </Request>
            <Response>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Response>
        </PreFlow>
        ...
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TargetEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request/>
            <Response/>
        </PreFlow>
        <PostFlow name="PostFlow">
            <Request/>
            <Response>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Response>
        </PostFlow>
        ...
    

Risoluzione

Assicurati che una policy ResponseCache sia collegata a un solo percorso di risposta in tutti i flussi del proxy API.

Per correggere l'esempio mostrato sopra, rimuovi la norma ResponseCache Response-Cache-1 da uno dei due percorsi di risposta.

InvalidMessagePatternForErrorCode

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI Apigee non riesce e viene visualizzato uno dei seguenti messaggi di errore:

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

OPPURE

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

Esempio di messaggio di errore

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

OPPURE

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

Screenshot di esempio dell'errore

Errore durante il deployment della revisione 2 in produzione - LookUp.

OPPURE

Errore durante il deployment della revisione 2 in produzione - Popolazione.

Causa

Questo errore si verifica se l'elemento <SkipCacheLookup> o <SkipCachePopulation> in una norma ResponseCache contiene una condizione non valida.

Diagnosi

  1. Esamina tutte le norme ResponseCache nel proxy API in cui si è verificato l'errore e verifica se sono presenti norme che hanno condizioni specificate per gli elementi <SkipCacheLookup> e/o <SkipCachePopulation>.

  2. Controlla se la condizione specificata per l'elemento <SkipCacheLookup> e/o <SkipCachePopulation> non è valida. In caso affermativo, questa è la causa dell'errore.

    Nel seguente esempio, l'elemento <SkipCachePopulation> utilizza l'operatore JavaScript === per verificare l'uguaglianza di valore e tipo, il che non è valido.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
        <DisplayName>Response Cache-1</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.uri" type="string"/>
        </CacheKey>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <ExpiryDate/>
            <TimeOfDay/>
            <TimeoutInSec ref="">3600</TimeoutInSec>
        </ExpirySettings>
        <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
        <SkipCacheLookup>request.header.bypass-cache === "true"</SkipCacheLookup>
    </ResponseCache>
    

    Poiché l'operatore === non è valido, viene visualizzato l'errore:

    Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
    

Risoluzione

Assicurati che la condizione specificata per gli elementi <SkipCacheLookup> e/o <SkipCachePopulation> sia sempre valida.

Per correggere la norma ResponseCache di esempio mostrata sopra, puoi modificare <SkipCacheLookup> per utilizzare l'operatore =:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache-1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" type="string"/>
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSec ref="">3600</TimeoutInSec>
    </ExpirySettings>
    <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
</ResponseCache>

CacheNotFound

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente o l'API Apigee genera un messaggio di errore come questo e lo stato del deployment del proxy API viene contrassegnato come parzialmente eseguito:

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

Esempio di messaggio di errore

Error Cache : Response-Cache-1, not found in organization : kkalckstein-eval__prod

Causa

Questo errore si verifica se la cache specifica menzionata nel messaggio di errore non è stata creata in un componente specifico del processore di messaggi.

Risoluzione

Contatta l'assistenza Apigee per ricevere aiuto.