Política LookupCache

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Configura como os valores em cache devem ser recuperados no ambiente de execução.

Esta política destina-se ao uso geral em cache de curto prazo. Ela é usada em conjunto com a política de preenchimento de cache, para gravação de entradas, e a política de invalidação de cache, para invalidar entradas.

Para armazenar em cache as respostas de recursos de back-end, consulte a Política de cache de resposta.

Referência de elemento

Veja a seguir uma lista dos elementos que podem ser configurados nessa política.

<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
    <DisplayName>Lookup Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <CacheLookupTimeoutInSeconds/>
    <Scope>Exclusive</Scope>
    <AssignTo>flowVar</AssignTo>
</LookupCache>

Um cache compartilhado está incluído por padrão. Para usar o cache compartilhado, omita o elemento <CacheResource> nessa configuração de política.

Para saber mais sobre o armazenamento de dados subjacente, consulte a página de detalhes sobre cache. Para mais informações sobre como configurar caches, consulte Como criar e editar um cache de ambiente.

Atributos <LookupCache>

A tabela a seguir descreve atributos comuns a todos os elementos pai de políticas:

Atributo Descrição Padrão Presença
name

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hifens, sublinhados e pontos. Esse valor não pode exceder 255 caracteres.

Opcionalmente, use o elemento <DisplayName> para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

N/A Obrigatório
continueOnError

Defina como false para retornar um erro quando uma política falhar. Esse é o comportamento esperado na maioria das políticas.

Defina como true para que a execução do fluxo continue, mesmo depois que uma política falhar.

false Opcional
enabled

Defina como true para aplicar a política.

Defina como false para desativar a política. A política não será aplicada mesmo se ela permanecer anexada a um fluxo.

verdadeiro Opcional
async

Esse atributo está obsoleto.

false Descontinuado

Elemento <DisplayName>

Use em conjunto com o atributo name para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

<DisplayName>Policy Display Name</DisplayName>
Padrão

N/A

Se você omitir esse elemento, será usado o valor do atributo name da política.

Presença Opcional
Tipo String

Elemento <AssignTo>

Especifica a variável em que a entrada do cache é atribuída depois de ter sido recuperada do cache. A variável precisa ser gravável. Se a pesquisa de cache não recuperar um valor, a variável não será definida.

<AssignTo>variable_to_receive_cached_value</AssignTo>

Padrão:

N/A

Presença:

Obrigatório

Tipo:

String

Elemento <CacheKey>

Configura um ponteiro exclusivo para uma parte dos dados armazenados no cache.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Padrão:

N/A

Presença:

Obrigatório

Tipo:

N/A

<CacheKey> cria o nome de cada parte dos dados armazenados no cache.

No ambiente de execução, os valores <KeyFragment> são prefixados com o valor do elemento <Scope> ou <Prefix>. Por exemplo, o seguinte resultado gera uma chave de cache de UserToken__apiAccessToken__<value_of_client_id>:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

Use o elemento <CacheKey> em conjunto com <Prefix> e <Scope>. Para mais informações, consulte Como trabalhar com chaves de cache.

Elemento <CacheLookupTimeoutInSeconds>

Especifica o número de segundos após o qual uma pesquisa de cache mal-sucedida será considerada uma ausência de cache. Se isso ocorrer, o fluxo será retomado no caminho de ausência no cache.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Padrão:

30

Presença:

Opcional

Tipo:

Número inteiro

Elemento <CacheResource>

Especifica o cache em que as mensagens devem ser armazenadas.

Omita esse elemento completamente se esta política (e suas políticas PopulateCache e InvalidateCache correspondentes) estiverem usando o cache compartilhado incluído.

<CacheResource>cache_to_use</CacheResource>

Padrão:

N/A

Presença:

Opcional

Tipo:

String

Para mais informações sobre como configurar caches, consulte Como criar e editar um cache de ambiente.

Elemento <CacheKey>/<KeyFragment>

Especifica um valor que deve ser incluído na chave de cache, criando um namespace para as solicitações correspondentes às respostas em cache.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Padrão:

N/A

Presença:

Opcional

Tipo:

N/A

Pode ser uma chave (um nome estático fornecido) ou um valor (uma entrada dinâmica definida por uma referência a uma variável). Todos os fragmentos especificados combinados (além do prefixo) são concatenados para criar a chave de cache.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

Use o elemento <KeyFragment> em conjunto com <Prefix> e <Scope>. Para mais informações, consulte Como trabalhar com chaves de cache.

Atributos

Atributo Tipo Padrão Obrigatório Descrição
ref string Não

A variável da qual conseguir o valor. Não pode ser usado se esse elemento contiver um valor literal.

Elemento <CacheKey>/<Prefix>

Especifica um valor para usar como prefixo da chave de cache.

<Prefix>prefix_string</Prefix>

Padrão:

N/A

Presença:

Opcional

Tipo:

String

Use esse valor em vez de <Scope> quando quiser especificar seu próprio valor em vez de um valor enumerado com <Scope>. Se definido, <Prefix> precede o valor da chave de cache das entradas gravadas no cache. Um valor de elemento <Prefix> modifica um valor de elemento <Scope>.

Use o elemento <Prefix> em conjunto com <CacheKey> e <Scope>. Para saber mais, consulte Como trabalhar com chaves de cache.

Elemento <Scope>

Enumeração usada para construir um prefixo para uma chave de cache quando um elemento <Prefix> não é fornecido no elemento <CacheKey>.

<Scope>scope_enumeration</Scope>

Padrão:

"Exclusivo"

Presença:

Opcional

Tipo:

String

A configuração <Scope> determina uma chave de cache que é anexada de acordo com o valor <Scope>. Por exemplo, uma chave de cache assume o seguinte formato quando o escopo é definido como Exclusive: orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [serializedCacheKey].

Se um elemento <Prefix> estiver presente em <CacheKey>, ele substituirá um valor de elemento <Scope>. Os valores válidos incluem as enumerações abaixo.

Use o elemento <Scope> em conjunto com <CacheKey> e <Prefix>. Para mais informações, consulte Como trabalhar com chaves de cache.

Valores aceitáveis

Global

A chave de cache é compartilhada entre todos os proxies de API implantados no ambiente. A chave de cache é precedida no formato orgName __ envName __.

Se você definir uma entrada <CacheKey> com o apiAccessToken <KeyFragment> e um escopo <Global>, cada entrada será armazenada como orgName__envName__apiAccessToken, seguida pelo valor serializado do token de acesso. Para um proxy de API implantado em um ambiente chamado "test" em uma organização chamada "apifactory", os tokens de acesso são armazenados na seguinte chave de cache: apifactory__test__apiAccessToken.

Application

O nome do proxy de API é usado como prefixo.

A chave de cache é precedida no formato orgName__envName__applicationName.

Proxy

A configuração ProxyEndpoint é usada como prefixo.

A chave de cache é precedida no formato orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName.

Target

A configuração TargetEndpoint é usada como prefixo.

A chave de cache é precedida no formato orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName.

Exclusive

Padrão. Este é o mais específico e, portanto, apresenta o risco mínimo de colisões de namespaces em um determinado cache.

O prefixo estará em um destes dois formatos:

  • Se a política estiver anexada ao fluxo ProxyEndpoint, o prefixo estará no formato ApiProxyName_ProxyEndpointName.
  • Se a política estiver anexada a TargetEndpoint, o prefixo estará no formato ApiProxyName_TargetName.

A chave de cache é precedida no formato orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName.

Por exemplo, a string completa pode ser assim:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Observações sobre uso

Use esta política para armazenamento em cache de uso geral. No ambiente de execução, a política LookupCache recupera um valor do cache, atribuindo o valor à variável especificada com o elemento AssignTo (se nenhum valor for recuperado, a variável não será definida). Ela busca o valor com base em uma chave de cache criada por meio de uma configuração que combina os elementos CacheKey e Scope. Em outras palavras, para recuperar um determinado valor adicionado ao cache por uma política PopulateCache, sua política LookupCache precisa ter elementos relacionados à chave de cache configurados da mesma forma que a política PopulateCache.

O armazenamento em cache de uso geral com a política de preenchimento de cache, LookupCache e InvalidateCache usa um cache configurado por você ou um cache compartilhado incluído por padrão. Na maioria dos casos, o cache compartilhado subjacente precisa atender às suas necessidades. Para usar o cache padrão, basta omitir o elemento <CacheResource>.

Para mais informações sobre como configurar caches, consulte Como criar e editar um cache de ambiente. Para saber mais sobre o armazenamento de dados subjacente, consulte a página de detalhes sobre cache.

Variáveis de fluxo

As variáveis de fluxo podem ser usadas para configurar o comportamento dinâmico do ambiente de execução para políticas e fluxos, com base nos cabeçalhos HTTP, no conteúdo de mensagens ou no contexto disponível no fluxo. Para mais informações sobre variáveis de fluxo, consulte Referência de variáveis.

As seguintes variáveis de fluxo predefinidas estarão disponíveis depois que você personalizar o comportamento do cache definido em uma política LookupCache.

Variáveis Tipo Permissão Descrição
lookupcache.{policy-name}.cachename String Somente leitura Retorna o nome do cache usado na política.
lookupcache.{policy-name}.cachekey String Somente leitura Retorna a chave usada.
lookupcache.{policy-name}.cachehit Booleano Somente leitura Verdadeiro se a política encontrou um valor para a chave de cache especificada.
lookupcache.{policy-name}.assignto String Somente leitura Retorna a variável à qual o cache foi atribuído.

Códigos de erro

Nesta seção, descrevemos as mensagens de erro e as variáveis de fluxo que são definidas quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para um proxy. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.

Prefixo do código de erro

N/A

Erros de execução

Essa política não gera erros de ambiente de execução.

Erros de implantação

Esses erros podem ocorrer quando você implanta um proxy que contém essa política.

Erro de nome Causa Corrigir
InvalidCacheResourceReference 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.
InvalidTimeout Se o elemento <CacheLookupTimeoutInSeconds> estiver definido como um número negativo, a implantação do proxy de API falhará.
CacheNotFound 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.

Variáveis de falha

N/A

Exemplo de resposta de erro

N/A