Solução de problemas de erro na implantação da política de cache de busca

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

InvalidTimeout

Mensagem de erro

A implantação do proxy de API pela IU do Edge ou pela API de gerenciamento do Edge falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela com erro de exemplo

Causa

Se o elemento <CacheLookupTimeoutInSeconds> de uma política LookupCache estiver definido como um número negativo, a implantação do proxy de API vai falhar.

Por exemplo, se o elemento <CacheLookupTimeoutInSeconds> for -1, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique o valor inválido especificado para o elemento <CacheLookupTimeoutInSeconds> na política LookupCache. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o valor inválido usado para o elemento <CacheLookupTimeoutInSeconds> é -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Examine todas as políticas LookupCache no proxy de API específico onde a falha ocorreu. Pode haver uma ou mais políticas LookupCache em que o elemento <CacheLookupTimeoutInSeconds> é especificado. Identifique a política LookUpCache em que o valor inválido (identificado na etapa 1 acima) é especificado para o elemento <CacheLookupTimeoutInSeconds>.

    Por exemplo, a configuração de política a seguir especifica o valor <CacheLookupTimeoutInSeconds> de -1, que corresponde à mensagem de erro:

    <?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> for especificado como um número inteiro negativo, essa será a causa do erro.

Resolução

Certifique-se de que o valor do elemento <CacheLookupTimeoutInSeconds> da política LookupCache seja sempre especificado como um número inteiro não negativo.

Para corrigir a política de LookupCache de exemplo mostrada acima, modifique o elemento <CacheLookupTimeoutInSeconds> para 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

Mensagem de erro

A implantação do proxy de API pela IU do Edge ou pela API de gerenciamento do Edge falha com esta mensagem de erro:

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]

Exemplo de mensagem de erro

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 tela com erro de exemplo

Causa

Esse erro ocorrerá se o elemento <CacheResource> estiver definido como um nome que não existe no ambiente em que o proxy de API está sendo implantado.

Diagnóstico

  1. Identifique o cache inválido usado no elemento <CacheResource> da política LookupCache e o ambiente em que o erro ocorreu. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir, o nome do cache inválido é tokencache e o nome do ambiente é test.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Examine todas as políticas LookupCache no proxy de API específico onde a falha ocorreu. Identifique a política LookupCache específica em que o cache inválido (identificado na etapa 1) é especificado no elemento <CacheResource>.

    Por exemplo, a política a seguir especifica o valor de <CacheResource> como tokencache, que corresponde à mensagem de erro:

    <?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. Verifique se o cache (determinado na etapa 1) foi definido no ambiente específico (identificado na etapa 1).

    Na interface do Edge, navegue até ADMIN > Ambiente > teste e verifique se o cache existe na guia Caches em Configuração do ambiente. Se o cache não existir, essa é a causa do erro.

    Por exemplo, observe na captura de tela abaixo que o cache tokencache não existe.

    Como o cache denominado tokencache não está definido no ambiente test, você recebe o erro:

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

Resolução

Verifique se o nome do cache especificado no elemento <CacheResource> foi criado no ambiente em que você quer implantar o proxy da API.

Consulte Como criar e editar um cache de ambiente para informações sobre como criar o cache.

CacheNotFound

Mensagem de erro

A implantação do proxy de API pela IU do Edge ou pela API de gerenciamento do Edge resulta em uma mensagem de erro como esta, e o status da implantação do proxy de API é marcado como parcialmente implantado:

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

Exemplo de mensagem de erro

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

Causa

Esse erro ocorre quando o cache específico mencionado na mensagem de erro não tiver sido criado em um componente de processador de mensagens específico.

Resolução

Se você for um usuário da nuvem privada, siga as instruções abaixo:

  1. Liste as implantações de proxy de API e determine quais processadores de mensagens têm o erro steps.cache.CacheNotFound.

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

    Exemplo de saída

    {
      "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. Anote os UUIDs do processador de mensagens em que você observa o erro steps.cache.CacheNotFound. Identifique o nome do host/endereço IP do processador de mensagens associado ao UUID.

  3. Faça login no processador de mensagens específico e reinicie-o usando o seguinte comando:

    apigee-service edge-message-processor restart

Se você for um usuário da nuvem pública ou se o problema persistir na nuvem privada, entre em contato com o suporte da Apigee para receber ajuda.