Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
A política InvalidateCache configura a forma como os valores em cache devem ser limpos da cache.
Esta política destina-se a utilização em cache de curto prazo de uso geral. É usada em conjunto com a política PopulateCache (para escrever entradas) e a política LookupCache (para ler entradas de cache).
Para colocar em cache as respostas dos recursos de back-end, consulte a política ResponseCache.
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.
Referência do elemento
A lista seguinte indica os elementos que pode configurar nesta política.
<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name"> <DisplayName>Policy Name</DisplayName> <CacheKey> <Prefix>prefix_string</Prefix> <KeyFragment ref="variable_reference"/> <KeyFragment>fragment_string</KeyFragment> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource>cache_to_use</CacheResource> <Scope>scope_enumeration</Scope> <CacheContext> <APIProxyName>application_that_added_the_entry</APIProxyName> <ProxyName>proxy_for_which_data_was_cached</ProxyName> <TargetName>endpoint_for_which_data_was_cached</TargetName> </CacheContext> <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries> </InvalidateCache>
Atributos <InvalidateCache>
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 <CacheContext>/<APIProxyName>
Especifica o nome da aplicação que adicionou a entrada de cache.
<APIProxyName>application_that_added_the_entry</APIProxyName>
Atributos
| Atributo | Descrição | Predefinição | Presença | Tipo |
|---|---|---|---|---|
| ref | Variável com o nome da aplicação. | N/A | Opcional | String |
Elemento <CacheContext>
Especifica como construir uma chave de cache quando não é especificado um valor do elemento Prefix ou para limpar as entradas de cache adicionadas por outro proxy de API.
<CacheContext> <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName> <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName> <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName> </CacheContext>
Usado para construir a CacheKey. Os valores de APIProxyName, ProxyName e TargetName são obrigatórios quando não é usado um prefixo CacheKey (ou seja, um prefixo personalizado) para limpar as entradas de cache adicionadas por outro proxy de API.
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 <CacheResource>
Especifica a cache onde as mensagens devem ser armazenadas.
Omita este elemento completamente se esta política (e as políticas PopulateCache e LookupCache 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 Criação de cache 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 o artigo
Trabalhar
com chaves de cache.
Atributos
| Atributo | Descrição | Predefinição | Presença | Tipo |
|---|---|---|---|---|
| ref | A variável a partir da qual obter o valor. Não deve ser usado se este elemento contiver um valor literal. | N/A | Opcional | String |
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 o artigo
Trabalhar
com chaves de cache.
Elemento <CacheContext>/<ProxyName>
Especifica o nome do proxy para o qual os dados foram colocados em cache.
<ProxyName>proxy_for_which_data_was_cached</ProxyName>
|
Predefinição: |
N/A |
|
Presença: |
Opcional |
|
Tipo: |
String |
Atributos
| Atributo | Descrição | Predefinição | Presença | Tipo |
|---|---|---|---|---|
| ref | A variável a partir da qual obter o valor. Não deve ser usado se este elemento contiver um valor literal. | N/A | Opcional | String |
Elemento <PurgeChildEntries>
true para limpar as entradas da cache que partilham o mesmo valor <Prefix>
configurado para esta política, mesmo que as instâncias da política PopulateCache
que carregaram esses itens na cache também tenham usado vários elementos
<KeyFragment>.
A invalidação de todas as entradas da cache do mesmo valor de prefixo permite-lhe limpar várias entradas relacionadas de uma só vez.
<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>
|
Predefinição: |
falso |
|
Presença: |
Opcional |
|
Tipo: |
Booleano |
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 anteposta 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 de um elemento <Scope>. Os valores válidos para o elemento <Scope>
são apresentados abaixo.
Para mais informações, consulte o artigo Trabalhar com chaves de cache.
Valores aceitáveis
| Valor do âmbito | Descrição |
|---|---|
Global |
A chave da cache é partilhada por todos os proxies de API implementados no ambiente. A chave da cache tem o prefixo no formato orgName __ envName __. Se definir uma entrada |
Application |
O nome do proxy da API é usado como prefixo. A chave da cache é adicionada sob a forma 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 conseguinte, apresenta um risco mínimo de colisões de espaço de nomes numa determinada cache. O prefixo tem um de dois formatos:
Chave da cache anteposta no formulário orgName__envName__applicationName__proxyNameITargetName Por exemplo, a string completa pode ter o seguinte aspeto: apifactory__test__weatherapi__default__apiAccessToken |
Elemento <CacheContext>/<TargetName>
Especifica o nome do ponto final de destino para o qual os dados foram colocados em cache.
<TargetName>endpoint_for_which_data_was_cached</TargetName>
|
Predefinição: |
N/A |
|
Presença: |
Opcional |
|
Tipo: |
String |
Atributos
| Atributo | Descrição | Predefinição | Presença | Tipo |
|---|---|---|---|---|
| ref | A variável a partir da qual obter o valor. Não deve ser usado se este elemento contiver um valor literal. | N/A | Opcional | String |
Notas de utilização
O armazenamento em cache de uso geral com a política PopulateCache, a política LookupCache e a 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 esta cache,
basta omitir o elemento <CacheResource>.
Para mais informações sobre a configuração de caches, consulte o artigo Criação de cache de uso geral. Para saber mais sobre o armazenamento de dados subjacente, consulte o artigo Funcionamento interno da cache.
Códigos de erro
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element in the InvalidateCache policy is set
to a name that does not exist in the environment where the API proxy is being deployed. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A