Solución de problemas de implementación de políticas de búsqueda en caché

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

InvalidTimeout

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de error de ejemplo

Causa

Si el elemento <CacheLookupTimeoutInSeconds> de una política LookupCache está configurado como un número negativo, la implementación del proxy de API falla.

Por ejemplo, si el elemento <CacheLookupTimeoutInSeconds> es -1, la implementación del proxy de API falla.

Diagnóstico

  1. Identifica el valor no válido especificado para el elemento <CacheLookupTimeoutInSeconds> en la política LookupCache. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el valor no válido que se usa para el elemento <CacheLookupTimeoutInSeconds> es -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Examina todas las políticas LookupCache en el proxy de API específico donde ocurrió la falla. Puede haber una o más políticas de LookupCache en las que se especifique el elemento <CacheLookupTimeoutInSeconds>. Identifica la política LookUpCache en la que se especifica el valor no válido (identificado en el paso 1) para el elemento <CacheLookupTimeoutInSeconds>.

    Por ejemplo, la siguiente configuración de política especifica el valor de <CacheLookupTimeoutInSeconds> de -1, que coincide con el mensaje de error:

    <?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. Si se especifica <CacheLookupTimeoutInSeconds> como un número entero negativo, esa es la causa del error.

Resolución

Asegúrese de que el valor del elemento <CacheLookupTimeoutInSeconds> de la política LookupCache siempre se especifique como un número entero no negativo.

Para corregir la política de ejemplo LookupCache que se muestra arriba, puedes modificar el elemento <CacheLookupTimeoutInSeconds> y establecerlo en 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra este mensaje de error:

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]

Ejemplo de mensaje de error

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

Captura de pantalla de error de ejemplo

Causa

Este error ocurre si el elemento <CacheResource> se configuró en un nombre que no existe en el entorno en el que se implementa el proxy de API.

Diagnóstico

  1. Identifica la caché no válida que se usa en el elemento <CacheResource> de la política LookupCache y el entorno en el que se produjo el error. Puedes encontrar ambos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la caché no válida es tokencache y el nombre del entorno es test.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Examina todas las políticas LookupCache en el proxy de API específico donde ocurrió la falla. Identifica la política LookupCache específica en la que se especifica la caché no válida (identificada en el paso 1) en el elemento <CacheResource>.

    Por ejemplo, en la siguiente política, se especifica el valor de <CacheResource> como tokencache, que coincide con el mensaje de error:

    <?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 si la caché (determinada en el paso 1) se definió en el entorno específico (identificado en el paso 1).

    En la IU de Edge, navega a ADMINISTRADOR > Entorno > prueba y verifica si la caché existe en la pestaña Cachés de Configuración del entorno. Si la caché no existe, esa es la causa del error.

    Por ejemplo, observa en la captura de pantalla a continuación que la caché llamada tokencache no existe.

    Debido a que la caché llamada tokencache no está definida en el entorno test, aparecerá el siguiente error:

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

Resolución

Asegúrate de que el nombre de caché especificado en el elemento <CacheResource> se haya creado en el entorno en el que quieres implementar el proxy de API.

Consulta Crea y edita una caché de entorno para obtener información acerca de cómo crear la caché.

CacheNotFound

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management da como resultado un mensaje de error como este, y el estado de implementación del proxy de API se marca como implementado parcialmente:

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

Ejemplo de mensaje de error

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

Causa

Este error se genera si la caché específica que se menciona en el mensaje de error no se creó en un componente específico del procesador de mensajes.

Resolución

Si eres usuario de una nube privada, sigue las instrucciones a continuación:

  1. Enumera las implementaciones de proxy de la API y determina qué Message Processor tienen el error steps.cache.CacheNotFound.

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

    Resultado de muestra:

    {
      "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. Toma nota de los UUIDs del Message Processor en el que observas el error steps.cache.CacheNotFound. Identifica el nombre del host o la dirección IP del Message Processor asociado con el UUID.

  3. Accede al procesador de mensajes específico y reinícialo con el siguiente comando:

    apigee-service edge-message-processor restart

Si eres usuario de la nube pública o si el problema persiste en nube privada, comunícate con el equipo de asistencia de Apigee para obtener ayuda.