Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
APLICA-SE A: Todas as camadas de gerenciamento de API
Use a política para executar a cache-lookup pesquisa de cache e retornar uma resposta válida em cache quando disponível. Esta política pode ser aplicada nos casos em que o conteúdo de resposta permanece estático durante um período de tempo. A colocação em cache de respostas reduz a largura de banda e os requisitos de processamento impostos no servidor Web de back-end e reduz a latência obtida pelos consumidores da API.
Nota
Esta política deve ter uma política de armazenamento para cache correspondente.
Importante
O cache interno é volátil e compartilhado por todas as unidades na mesma região no mesmo serviço de Gerenciamento de API.
Nota
Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Para ajudá-lo a configurar essa política, o portal fornece um editor guiado baseado em formulários. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.
Declaração de política
<cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" caching-type="prefer-external | external | internal" downstream-caching-type="none | private | public" must-revalidate="true | false" allow-private-response-caching="@(expression to evaluate)">
<vary-by-header>Accept</vary-by-header>
<!-- should be present in most cases -->
<vary-by-header>Accept-Charset</vary-by-header>
<!-- should be present in most cases -->
<vary-by-header>Authorization</vary-by-header>
<!-- should be present when allow-private-response-caching is "true"-->
<vary-by-header>header name</vary-by-header>
<!-- optional, can be repeated -->
<vary-by-query-parameter>parameter name</vary-by-query-parameter>
<!-- optional, can be repeated -->
</cache-lookup>
Atributos
| Atributo | Descrição | Necessário | Predefinição |
|---|---|---|---|
| allow-private-response-caching | Quando definido como true, permite o armazenamento em cache de solicitações que contêm um cabeçalho de Autorização. São permitidas expressões de política. |
Não | false |
| tipo de cache | Escolha entre os seguintes valores do atributo: - internalpara usar o cache interno de Gerenciamento de API,- external para usar o cache externo conforme descrito em Usar um Cache Redis do Azure externo no Gerenciamento de API do Azure,- prefer-external para usar o cache externo, se configurado, ou o cache interno de outra forma.Expressões de política não são permitidas. |
Não | prefer-external |
| downstream-caching-type | Esse atributo deve ser definido como um dos seguintes valores. - Nenhum - o armazenamento em cache a jusante não é permitido. - privado - é permitido o armazenamento em cache privado a jusante. - público - privado e compartilhado downstream caching é permitido. São permitidas expressões de política. |
Não | nenhum |
| deve-revalidar | Quando o cache downstream está habilitado, esse atributo ativa ou desativa a diretiva de controle de cache nas respostas do must-revalidate gateway. São permitidas expressões de política. |
Não | true |
| variar por desenvolvedor | Defina como true respostas em cache por conta de desenvolvedor que possui a chave de assinatura incluída na solicitação. São permitidas expressões de política. |
Sim | false |
| variar por grupos de desenvolvedores | Defina como true respostas de cache por grupo de usuários. São permitidas expressões de política. |
Sim | false |
Elementos
| Nome | Descrição | Necessário |
|---|---|---|
| variar por cabeçalho | Adicione um ou mais desses elementos para começar a armazenar em cache respostas por valor de cabeçalho especificado, como Accept, Accept-Charset, , Accept-Encoding, Accept-Language, AuthorizationExpect, From, Host, . If-Match |
Não |
| variar-por-query-parameter | Adicione um ou mais desses elementos para começar a armazenar em cache respostas por valor de parâmetros de consulta especificados. Insira um ou vários parâmetros. Use ponto-e-vírgula como separador. | Não |
Utilização
- Secções políticas: entrada
- Âmbitos de política: global, área de trabalho, produto, API, operação
- Gateways: clássico, v2, consumo, auto-hospedado, espaço de trabalho
Notas de utilização
- O Gerenciamento de API só executa a pesquisa de cache para solicitações HTTP GET.
- Ao usar
vary-by-query-parametero , convém declarar os parâmetros no modelo rewrite-uri ou definir o atributocopy-unmatched-paramscomofalse. Ao desativar esse sinalizador, os parâmetros que não são declarados são enviados para o back-end.
- Esta política só pode ser utilizada uma vez numa secção de política.
- Esta política não é suportada dentro de um fragmento de política.
- Recomendamos configurar uma política de limite de taxa (ou política de limite de taxa por chave ) imediatamente após qualquer pesquisa de cache. Isso ajuda a evitar que o serviço de back-end fique sobrecarregado se o cache não estiver disponível.
Exemplos
Exemplo com a política de armazenamento de cache correspondente
Este exemplo mostra como usar a cache-store política junto com uma cache-lookup política para armazenar respostas em cache no cache interno do Gerenciamento de API.
Nota
Adicione uma política de limite de taxa (ou política de limite de taxa por chave ) após a pesquisa de cache para ajudar a limitar o número de chamadas e evitar sobrecarga no serviço backend caso a cache não esteja disponível.
<policies>
<inbound>
<base />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true" caching-type="internal" >
<vary-by-query-parameter>version</vary-by-query-parameter>
</cache-lookup>
<rate-limit calls="10" renewal-period="60" />
</inbound>
<outbound>
<cache-store duration="seconds" />
<base />
</outbound>
</policies>
Exemplo de utilização de expressões de política
Este exemplo mostra como configurar a duração do cache de resposta do Gerenciamento de API que corresponde ao cache de resposta do serviço de back-end, conforme especificado pela diretiva do serviço de Cache-Control back-end.
<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->
<!-- Copy this snippet into the inbound section -->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
<rate-limit calls="10" renewal-period="60" />
<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found -->
<cache-store duration="@{
var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
var maxAge = Regex.Match(header, "@(max-age=(?<maxAge>\\d+))").Groups["maxAge"]?.Value;
return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300; }" />
Para obter mais informações, consulte Expressões de política e variável de contexto.
Políticas relacionadas
Conteúdos relacionados
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transforme e proteja sua API
- Referência de política para uma lista completa de declarações de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Recompra de trechos de política
- Política de recompra de parques infantis
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Obtenha assistência do Copilot para criar, explicar e resolver problemas com políticas