Invalida la solución de problemas de errores en la implementación de políticas de caché

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

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 [invalidate_cache_policy_name]. Context Revision:[revision_number];APIProxy:[apiproxy_name];Organization:[organization];Environment:[environment]

Ejemplo de mensaje de error

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

Captura de pantalla de error de ejemplo

Causa

Este error se genera si el elemento <CacheResource> en la política InvalidateCache se configura como un nombre que no existe en el entorno en el que se implementa el proxy de API.

Diagnóstico

  1. Identifica el nombre de la política InvalidateCache, la caché no válida usada en el elemento <CacheResource> de la política InvalidateCache y el entorno en el que se produjo el error. Puedes encontrar todos estos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política InvalidateCache es InvalidateCache-Token, 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 InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Examina el XML de la política InvalidateCache con errores y verifica si el nombre de la caché especificado para el elemento <CacheResource> coincide con el mensaje de error.

    En este ejemplo, el nombre de caché especificado en el elemento <CacheResource> es tokencache:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <InvalidateCache async="false" continueOnError="false" enabled="true" name="InvalidateCache-Token">
        <DisplayName>InvalidateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref=""/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <CacheContext>
            <APIProxyName/>
            <ProxyName>default</ProxyName>
            <TargetName>default</TargetName>
        </CacheContext>
        <PurgeChildEntries>false</PurgeChildEntries>
    </InvalidateCache>
    
  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 InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    

Resolución

Asegúrate de que la caché especificada en el elemento <CacheResource> de la política InvalidateCache se creó en el entorno en el que deseas 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. Un Message Processor es un componente interno de Edge que procesa el flujo de tráfico de la API a través de Apigee Edge.

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 correspondiente al 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.