Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da
Apigee Edge.
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 com as políticas PopulateCache (para gravação de entradas) e InvalidateCache (para invalidar entradas).
Esta é uma política extensível. O uso dela pode ter implicações no custo ou na utilização, dependendo da sua licença da Apigee. Para informações sobre tipos de política e implicações de uso, consulte Tipos de política.
Para armazenar em cache as respostas dos recursos de back-end, consulte a política ResponseCache.
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 Armazenamento em cache de uso geral.
Atributos <LookupCache>
A tabela a seguir descreve atributos comuns a todos os elementos pai de políticas:
| Atributo | Descrição | Padrão | Presence |
|---|---|---|---|
name |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
N/A | Obrigatório |
continueOnError |
Defina como Defina como |
false | Opcional |
enabled |
Defina como Defina como |
true | 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 |
|---|---|
| Presence | 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>12</CacheLookupTimeoutInSeconds>
|
Padrão: |
12 |
|
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 a configuração de caches, consulte Armazenamento em cache de uso geral.
Elemento <CacheKey>/<KeyFragment>
Especifica um valor que precisa ser incluído na chave de cache. Especifique uma variável para remover a referência
com o atributo ref ou um valor fixo.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
|
Padrão: |
N/A |
|
Presença: |
Opcional |
|
Tipo: |
N/A |
No ambiente de execução, a Apigee cria a chave de cache adicionando o valor recebido do
elemento <Scope> ou <Prefix> a uma
concatenação dos valores resolvidos de cada um dos elementos <KeyFragment>.
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 |
Um elemento <Prefix> modifica qualquer elemento <Scope>.
No ambiente de execução, a Apigee cria a chave de cache adicionando o valor recebido do
elemento <Scope> ou <Prefix> a uma
concatenação dos valores resolvidos de cada um dos elementos <KeyFragment>.
Para mais informações, 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__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.
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 |
Application |
O nome do proxy de API é usado como prefixo. A chave de cache é precedida no formato orgName__envName__applicationName. |
Proxy |
A configuração do ProxyEndpoint é usada como prefixo. A chave de cache é precedida no formato orgName__envName__applicationName__proxyEndpointName . |
Target |
A configuração TargetEndpoint é usada como prefixo. A chave de cache é precedida no formato orgName__envName__applicationName__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:
A chave de cache é precedida no formato orgName__envName__applicationName__proxyNameITargetName Por exemplo, a string completa pode ter esta aparência: apifactory__test__weatherapi__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 as políticas PopulateCache,
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 a configuração de caches, consulte Armazenamento em cache de uso geral. 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 as variáveis de fluxo, consulte a Referência de variáveis de fluxo.
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
Esta secção descreve as mensagens de erro e as variáveis de fluxo que são definidas quando esta política aciona um erro. Estas informações são importantes se estiver a desenvolver regras de falhas para um proxy. Para saber mais, consulte o artigo O que precisa de saber acerca dos erros de políticas e o artigo Processamento de falhas.
Prefixo do código de erro
N/A
Erros de tempo de execução
Esta política não gera erros de tempo de execução.
Erros de implementação
Estes erros podem ocorrer quando implementa um proxy que contém esta política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidCacheResourceReference |
Este erro ocorre se o elemento <CacheResource> estiver definido para um nome que não existe no ambiente onde o proxy de API está a ser implementado. |
build |
InvalidTimeout |
Se o elemento <CacheLookupTimeoutInSeconds> estiver definido como um número negativo, a implementação do proxy de API falha. |
build |
CacheNotFound |
Este erro ocorre se a cache específica mencionada na mensagem de erro não tiver sido criada num componente do processador de mensagens específico. | build |
Variáveis de falha
N/A
Exemplo de resposta de erro
N/A