Como implementar a limitação de taxa no Azure Gerenciamento de API

Usando a limitação de taxa , você pode limitar o número de chamadas à API que um usuário ou serviço pode fazer em um determinado período de tempo. A limitação de taxa ajuda a garantir um uso justo e impede que qualquer usuário ou serviço monopolize os recursos da API. O APIM (Azure Gerenciamento de API) fornece uma maneira conveniente de implementar a limitação de taxa para suas APIs.

Por que o Azure Gerenciamento de API?

O Azure Gerenciamento de API é 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 à API. Um de seus recursos é controlar a limitação de taxa, o que é útil para manter a integridade e a confiabilidade de suas APIs.

Configurar a limitação de taxa no Azure Gerenciamento de API

O Azure Gerenciamento de API usa políticas para impor a limitação de taxa. Você pode definir essas políticas em escopos diferentes: global, produto ou específico da API. Essa flexibilidade permite que você adapte a limitação de taxa de acordo com os requisitos e padrões de uso da API.

Antes de começar a implementar a limitação 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 um número de chamadas por segundo, minuto ou hora. Por exemplo, você pode permitir 1000 chamadas por minuto por usuário.

Para definir limites de taxa em sua API no Azure Gerenciamento de API, use as rate-limit políticas ou rate-limit-by-key . O primeiro define um limite entre todos os usuários, enquanto o último permite limites por chave identificada (como uma assinatura ou uma ID de usuário).

Aqui está um exemplo de uma política que limita as chamadas a 1000 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 Azure Gerenciamento de API envia um código de status de solicitações 429 demais, juntamente com o retry-after cabeçalho de resposta e uma mensagem indicando 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 Azure Gerenciamento de API não expõe informações de limite de taxa em cabeçalhos de resposta. Não comunicar limites de taxa dificulta que os aplicativos evitem exceder o limite e serem limitados. Para expor informações de limite de taxa, estenda a rate-limit política com as remaining-calls-header-name propriedades 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 , que comunicam quantas chamadas mais a API pode lidar antes de exceder o limite.

Resumo

Implementar a limitação de taxa no Azure Gerenciamento de API ajuda você a criar APIs robustas e escalonáveis. Usando a limitação de taxa, você pode garantir que sua API atenda aos usuários de forma confiável e eficiente. Lembre-se de que a chave é encontrar o equilíbrio certo – muito estrito e você pode dificultar a usabilidade; muito tolerante e você corre o risco de sobrecarregar sua API. Com planejamento cuidadoso e monitoramento contínuo, você pode obter esse equilíbrio e manter um ambiente de API íntegro.

Próximas etapas