Comment implémenter la limitation du débit dans Azure Gestion des API

À l’aide de la limitation du débit, vous pouvez limiter le nombre d’appels d’API qu’un utilisateur ou un service peut effectuer dans un laps de temps donné. La limitation du débit vous aide à garantir une utilisation équitable et empêche tout utilisateur ou service unique de monopoliser les ressources de l’API. Azure Gestion des API (APIM) offre un moyen pratique d’implémenter la limitation du débit pour vos API.

Pourquoi Azure Gestion des API ?

Azure Gestion des API est un service cloud puissant et polyvalent qui aide les organisations à publier des API pour des développeurs externes, partenaires et internes. Il fournit des outils pour sécuriser, gérer et mettre à l’échelle les appels d’API. L’une de ses fonctionnalités consiste à contrôler la limitation du débit, ce qui est utile pour maintenir l’intégrité et la fiabilité de vos API.

Configurer la limitation du débit dans Azure Gestion des API

Azure Gestion des API utilise des stratégies pour appliquer la limitation du débit. Vous pouvez définir ces stratégies à différentes étendues : globale, spécifique au produit ou à l’API. Cette flexibilité vous permet d’adapter la limitation du débit en fonction des exigences et des modèles d’utilisation de votre API.

Avant de commencer à implémenter la limitation du débit, déterminez les limites de débit. Les limites que vous définissez dépendent de la capacité de votre API et du trafic attendu. Les limites courantes sont définies sous la forme d’un nombre d’appels par seconde, minute ou heure. Par instance, vous pouvez autoriser 1 000 appels par minute et par utilisateur.

Pour définir des limites de débit sur votre API dans Azure Gestion des API, utilisez les rate-limit stratégies ou rate-limit-by-key . Le premier définit une limite pour tous les utilisateurs, tandis que le second autorise des limites par clé identifiée (comme un abonnement ou un ID d’utilisateur).

Voici un exemple de stratégie qui limite les appels à 1 000 par minute.

<policies>
  <inbound>
    <base />
    <rate-limit calls="1000" renewal-period="60" />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <base />
  </on-error>
</policies>

Lorsque vous dépassez le nombre spécifié d’appels, Azure Gestion des API envoie un code 429 Demandes trop nombreuses status, ainsi que l’en-tête de réponse retry-after et un message indiquant quand vous pouvez réessayer.

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."
}

Exposer des informations sur la limite de débit sur les en-têtes de réponse

Par défaut, Azure Gestion des API n’expose pas d’informations sur la limite de débit sur les en-têtes de réponse. Le fait de ne pas communiquer les limites de débit rend difficile pour les applications d’éviter de dépasser la limite et d’être limitées. Pour exposer des informations sur la limite de débit, étendez la rate-limit stratégie avec les remaining-calls-header-name propriétés et 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>

Lorsque vous appelez votre API maintenant, chaque réponse inclut les en-têtes et ratelimit-limit , qui indiquent le ratelimit-remaining nombre d’appels supplémentaires que l’API peut gérer avant de dépasser la limite.

Résumé

L’implémentation de la limitation du débit dans Azure Gestion des API vous permet de créer des API robustes et évolutives. En utilisant la limitation du débit, vous pouvez vous assurer que votre API sert vos utilisateurs de manière fiable et efficace. N’oubliez pas que la clé est de trouver le bon équilibre - trop strict, et vous risquez de nuire à la facilité d’utilisation ; trop indulgent, et vous risquez d’accabler votre API. Grâce à une planification minutieuse et à une surveillance continue, vous pouvez atteindre cet équilibre et maintenir un environnement d’API sain.

Étapes suivantes