Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Usando o limite de taxa, você pode limitar o número de chamadas de API que um usuário ou serviço pode fazer em um período de tempo específico. A limitação de taxas ajuda a garantir o uso justo e impede que qualquer usuário ou serviço monopolize os recursos da API. O Gerenciamento de API do Azure fornece uma maneira conveniente de implementar o limite de taxa para suas APIs.
Por que usar o Gerenciamento de API do Azure?
O Gerenciamento de API do Azure é um serviço de nuvem poderoso e versátil que ajuda as organizações a publicar APIs para desenvolvedores externos, parceiros e internos. Ele fornece ferramentas para proteger, gerenciar e dimensionar chamadas de API. Um de seus recursos é controlar o limite de taxa, o que é útil para manter a integridade e a confiabilidade de suas APIs.
Configurar limitação de taxa no Gerenciamento de API do Azure
O Gerenciamento de API do Azure usa políticas para impor o limite de taxa. Você pode definir essas políticas em diferentes escopos: global, específico do produto ou da API. Essa flexibilidade permite que você personalize a limitação de taxa de acordo com os requisitos e padrões de uso da sua API.
Antes de começar a implementar o limite de taxa, decida sobre os limites de taxa. Os limites definidos dependem da capacidade da API e do tráfego esperado. Os limites comuns são definidos como o número de chamadas por segundo, minuto ou hora. Por exemplo, você pode permitir 1.000 chamadas por minuto por usuário.
Para definir limites de taxa na sua API no Gerenciamento de API do Azure, use as políticas rate-limit
ou rate-limit-by-key
. A rate-limit
política define um limite para todos os usuários. A rate-limit-by-key
política permite limites por chave identificada (como uma assinatura ou um ID de usuário).
Aqui está um exemplo de uma política que limita as chamadas a 1.000 por minuto.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Quando você excede o número especificado de chamadas, o Gerenciamento de API do Azure envia um 429 Too Many Requests
código de status, juntamente com o cabeçalho de retry-after
resposta e uma mensagem que indica quando você pode tentar novamente.
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 60 seconds."
}
Expor informações de limite de taxa em cabeçalhos de resposta
Por padrão, o Gerenciamento de API do Azure não expõe informações de limite de taxa em cabeçalhos de resposta. Não comunicar os limites de taxa torna difícil para os aplicativos evitar exceder o limite e ser limitado. Para expor informações sobre o limite de taxa, estenda a política rate-limit
com as propriedades remaining-calls-header-name
e total-calls-header-name
.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Quando você chama sua API agora, cada resposta inclui os ratelimit-remaining
cabeçalhos e ratelimit-limit
. Os cabeçalhos comunicam quantas chamadas mais a API pode processar antes de exceder o limite.
Resumo
A implementação do limite de taxa no Gerenciamento de API do Azure ajuda a criar APIs robustas e escaláveis. Ao usar o limite de taxa, você pode garantir que sua API atenda seus usuários de forma confiável e eficiente. A chave é encontrar o equilíbrio certo. Se um limite de taxa for muito rigoroso, você pode prejudicar a usabilidade. Se um limite de taxa for muito brando, você corre o risco de sobrecarregar sua API. Com um planejamento cuidadoso e monitoramento contínuo, você pode alcançar esse equilíbrio e manter um ambiente de API saudável.