Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do Apigee Edge.
Configura a forma como os valores em cache devem ser obtidos no tempo de execução.
Esta política destina-se a utilização em armazenamento em cache a curto prazo de fins gerais. É usado em conjunto com a política PopulateCache (para escrever entradas) e a política InvalidateCache (para invalidar entradas).
Esta política é uma política extensível e a utilização desta política pode ter implicações de custo ou utilização, consoante a sua licença do Apigee. Para ver informações sobre os tipos de políticas e as implicações de utilização, consulte Tipos de políticas.
Para colocar em cache as respostas dos recursos de back-end, consulte a política ResponseCache.
Referência do elemento
A lista seguinte indica os elementos que pode configurar nesta 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>
Uma cache partilhada está incluída por predefinição. Para usar a cache partilhada, omita o elemento <CacheResource> nesta configuração da política.
Para saber mais sobre o armazenamento de dados subjacente, consulte o artigo Funcionamento interno da cache. Para mais informações sobre a configuração de caches, consulte o artigo Criação de cache de uso geral.
Atributos <LookupCache>
A tabela seguinte descreve os atributos comuns a todos os elementos principais de políticas:
| Atributo | Descrição | Predefinição | Presença |
|---|---|---|---|
name | O nome interno da política. O valor do atributo Opcionalmente, use o elemento | N/A | Obrigatória |
continueOnError | Definido como Definido como | falso | Opcional |
enabled | Defina como Defina como | verdadeiro | Opcional |
async | Este atributo foi descontinuado. | falso | Descontinuado |
Elemento <DisplayName>
Use em conjunto com o atributo name para etiquetar a política no editor de proxy da IU de gestão com um nome diferente em linguagem natural.
<DisplayName>Policy Display Name</DisplayName>
| Predefinição | N/A Se omitir este elemento, é usado o valor do atributo |
|---|---|
| Presença | Opcional |
| Tipo | String |
Elemento <AssignTo>
Especifica a variável à qual a entrada da cache é atribuída depois de ter sido obtida da cache. A variável tem de ser gravável. Se a pesquisa na cache não obtiver um valor, a variável não é definida.
<AssignTo>variable_to_receive_cached_value</AssignTo>
| Predefinição: | N/A |
| Presença: | Obrigatória |
| Tipo: | String |
Elemento <CacheKey>
Configura um ponteiro único para um fragmento de dados armazenado na cache.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
| Predefinição: | N/A |
| Presença: | Obrigatória |
| Tipo: | N/A |
<CacheKey> cria o nome de cada parte dos dados armazenados na cache.
Em tempo de execução, os valores <KeyFragment> são precedidos pelo valor do elemento <Scope> ou pelo valor <Prefix>. Por exemplo, o seguinte resulta numa chave da cache de UserToken__apiAccessToken__<value_of_client_id>:
<CacheKey> <Prefix>UserToken</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey>
Usa o elemento <CacheKey> em conjunto com <Prefix> e <Scope>. Para mais informações, consulte o artigo Trabalhar com chaves de cache.
Elemento <CacheLookupTimeoutInSeconds>
Especifica o número de segundos após o qual uma pesquisa de cache sem êxito é considerada uma falha de cache. Se isto ocorrer, o fluxo é retomado ao longo do caminho de falha de cache.
<CacheLookupTimeoutInSeconds>12</CacheLookupTimeoutInSeconds>
| Predefinição: | 12 |
| Presença: | Opcional |
| Tipo: | Número inteiro |
Elemento <CacheResource>
Especifica a cache onde as mensagens devem ser armazenadas.
Omita este elemento completamente se esta política (e as políticas PopulateCache e InvalidateCache correspondentes) estiver a usar a cache partilhada incluída.
<CacheResource>cache_to_use</CacheResource>
| Predefinição: | N/A |
| Presença: | Opcional |
| Tipo: | String |
Para mais informações sobre a configuração de caches, consulte o artigo Caches de uso geral.
Elemento <CacheKey>/<KeyFragment>
Especifica um valor que deve ser incluído na chave da cache. Especifique uma variável a desreferenciar com o atributo ref ou um valor fixo.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
| Predefinição: | N/A |
| Presença: | Opcional |
| Tipo: | N/A |
Em tempo de execução, o Apigee cria a chave da cache antepondo o valor obtido do elemento <Scope> ou do elemento <Prefix> a uma concatenação dos valores resolvidos de cada um dos elementos <KeyFragment>. Para mais informações, consulte Trabalhar com chaves de cache.
Atributos
| Atributo | Tipo | Predefinição | Obrigatória | Descrição |
|---|---|---|---|---|
| ref | de string | Não | A variável a partir da qual obter o valor. Não deve ser usado se este elemento contiver um valor literal. |
Elemento <CacheKey>/<Prefix>
Especifica um valor a usar como prefixo da chave de cache.
<Prefix>prefix_string</Prefix>
| Predefinição: | N/A |
| Presença: | Opcional |
| Tipo: | String |
Um elemento <Prefix> substitui qualquer elemento <Scope>.
Em tempo de execução, o Apigee cria a chave da cache antepondo o valor obtido do elemento <Scope> ou do elemento <Prefix> a uma concatenação dos valores resolvidos de cada um dos elementos <KeyFragment>. Para mais informações, consulte 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>
| Predefinição: | "Exclusivo" |
| Presença: | Opcional |
| Tipo: | String |
A definição <Scope> determina uma chave de cache que é adicionada de acordo com o valor <Scope>. Por exemplo, uma chave de cache teria o seguinte formato quando o âmbito é definido como Exclusive: orgName__envName__applicationName__proxy|TargetName__ [ serializedCacheKey ].
Se um elemento <Prefix> estiver presente em <CacheKey>, substitui o valor do elemento <Scope>. Os valores válidos incluem as enumerações abaixo.
Para mais informações, consulte o artigo Trabalhar com chaves de cache.
Valores aceitáveis
Global | A chave da cache é partilhada por todos os proxies de API implementados no ambiente. A chave da cache é adicionada no início no formato orgName __ envName __. Se definir uma entrada |
Application | O nome do proxy da API é usado como prefixo. A chave da cache é adicionada no formulário orgName__envName__applicationName. |
Proxy | A configuração ProxyEndpoint é usada como prefixo. A chave da cache é adicionada sob a forma orgName__envName__applicationName__proxyEndpointName . |
Target | A configuração TargetEndpoint é usada como prefixo. Chave da cache anteposta no formulário orgName__envName__applicationName__targetEndpointName . |
Exclusive | Predefinição. Esta é a mais específica e, por isso, apresenta um risco mínimo de colisões de espaço de nomes numa determinada cache. O prefixo tem um de dois formatos:
Chave de cache anteposta no formulário orgName__envName__applicationName__proxyNameITargetName Por exemplo, a string completa pode ter o seguinte aspeto: apifactory__test__weatherapi__default__apiAccessToken |
Notas de utilização
Use esta política para o armazenamento em cache de uso geral. Em tempo de execução, a política LookupCache obtém um valor da cache, atribuindo o valor à variável especificada com o elemento AssignTo (se não for obtido nenhum valor, a variável não é definida). Procura o valor com base numa chave de cache criada através da configuração que combina os elementos CacheKey e Scope. Por outras palavras, para obter um valor específico adicionado à cache por uma política PopulateCache, a sua política LookupCache tem de ter elementos relacionados com a chave da cache configurados da mesma forma que a política PopulateCache.
O armazenamento em cache de uso geral com a política PopulateCache, política LookupCache e política InvalidateCache usa uma cache que configura ou uma cache partilhada incluída por predefinição. Na maioria dos casos, a cache partilhada subjacente deve satisfazer as suas necessidades. Para usar a cache predefinida, basta omitir o elemento <CacheResource>.
Para mais informações sobre a configuração de caches, consulte o artigo Caches de uso geral. Para saber mais sobre o armazenamento de dados subjacente, consulte o artigo Funcionamento interno da cache.
Variáveis de fluxo
As variáveis de fluxo podem ser usadas para configurar o comportamento dinâmico de tempo de execução para políticas e fluxos, com base nos cabeçalhos HTTP ou no conteúdo das mensagens, ou no contexto disponível no fluxo. Para mais informações acerca das variáveis de fluxo, consulte a referência de variáveis de fluxo.
As seguintes variáveis de fluxo predefinidas estão disponíveis depois de personalizar o comportamento da cache que define numa política LookupCache.
| Variáveis | Tipo | Autorização | Descrição |
|---|---|---|---|
| lookupcache.{policy-name}.cachename | String | Só de leitura | Devolve o nome da cache usado na política. |
| lookupcache.{policy-name}.cachekey | String | Só de leitura | Devolve a chave usada. |
| lookupcache.{policy-name}.cachehit | Booleano | Só de leitura | Verdadeiro se a política tiver encontrado um valor para a chave da cache especificada. |
| lookupcache.{policy-name}.assignto | String | Só de leitura | Devolve a variável à qual a cache está atribuída. |
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