Como implementar a limitação de taxas no Azure Gestão de API

Ao utilizar a limitação de taxa , pode limitar o número de chamadas à API que um utilizador ou serviço pode fazer num determinado período de tempo. A limitação de taxas ajuda-o a garantir uma utilização justa e impede que qualquer utilizador ou serviço único monopolize os recursos da API. O Azure Gestão de API (APIM) fornece uma forma conveniente de implementar a limitação de taxas para as suas APIs.

Porquê o Azure Gestão de API?

O Azure Gestão de API é um serviço cloud poderoso e versátil que ajuda as organizações a publicar APIs em programadores externos, parceiros e internos. Fornece ferramentas para proteger, gerir e dimensionar chamadas à API. Uma das funcionalidades é controlar a limitação de taxas, o que é útil para manter o estado de funcionamento e a fiabilidade das SUAS APIs.

Configurar a limitação da taxa no Azure Gestão de API

O Azure Gestão de API utiliza políticas para impor a limitação de taxas. Pode definir estas políticas em diferentes âmbitos: global, produto ou específico da API. Esta flexibilidade permite-lhe adaptar a limitação da taxa de acordo com os requisitos e padrões de utilização da API.

Antes de começar a implementar a limitação da taxa, decida sobre os limites de taxa. Os limites que definir 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, pode permitir 1000 chamadas por minuto por utilizador.

Para definir limites de taxa na sua API no Azure Gestão de API, utilize as rate-limit políticas ourate-limit-by-key. O primeiro define um limite para todos os utilizadores, enquanto este último permite limites por chave identificada (como uma subscrição ou um ID de utilizador).

Eis 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 excede o número especificado de chamadas, o Azure Gestão de API envia um código de estado 429 Demasiados Pedidos, juntamente com o retry-after cabeçalho de resposta e uma mensagem que indica quando 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 nos cabeçalhos de resposta

Por predefinição, o Azure Gestão de API não expõe as informações de limite de taxa nos cabeçalhos de resposta. Não comunicar limites de taxa dificulta que as aplicações evitem exceder o limite e serem limitadas. Para expor as informações de limite de taxa, expanda 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 chama a sua API agora, cada resposta inclui os ratelimit-remaining cabeçalhos e ratelimit-limit que comunicam quantas mais chamadas a API pode processar antes de exceder o limite.

Resumo

Implementar a limitação de taxas no Azure Gestão de API ajuda-o a criar APIs robustas e dimensionáveis. Ao utilizar a limitação de taxas, pode garantir que a API serve os seus utilizadores de forma fiável e eficiente. Lembre-se de que a chave é encontrar o equilíbrio certo – demasiado rigoroso e pode dificultar a usabilidade; demasiado brando e arrisca-se a sobrecarregar a sua API. Com um planeamento cuidadoso e monitorização contínua, pode alcançar este equilíbrio e manter um ambiente de API em bom estado de funcionamento.

Passos seguintes