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

Estás viendo la documentación de Apigee Edge.
Ve a 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 el siguiente 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:[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 PopulateCache-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 PopulateCache 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 PopulateCache, la caché no válida que se usó en el elemento <CacheResource> de la política y el entorno en el que se generó el error. Puedes encontrar todos estos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política PopulateCache es PopulateCache-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 PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Examina el XML de la política PopulateCache 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"?>
    <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 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 > test y comprueba si existe la caché en la pestaña Caches de Environment Configuration. 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 PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    

Solución

Asegúrate de que la caché especificada en el elemento <CacheResource> de la política PopulateCache 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 administración de Edge genera un mensaje de error como este, y el estado de implementación del proxy de API se marca como implementado de forma parcial:

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.

Solución

Si eres usuario de la Nube privada, sigue las instrucciones que se indican a continuación:

  1. Enumera las implementaciones del proxy de 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. Observa los UUID del Message Processor en el que se observa el error steps.cache.CacheNotFound. Identifica el nombre de host o la dirección IP del Message Processor correspondiente al UUID.

  3. Accede al Message Processor 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 la nube privada, comunícate con el equipo de asistencia de Apigee para obtener ayuda.