Comment implémenter la limitation de débit dans Azure API Management
À l’aide de la limitation de débit, vous pouvez limiter le nombre d’appels d’API qu’un utilisateur ou un service peut effectuer dans un délai donné. La limitation du débit vous permet de 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 de 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 sur des développeurs externes, partenaires et internes. Il fournit des outils pour la sécurisation, la gestion et la mise à l’échelle des appels d’API. L’une de ses fonctionnalités consiste à contrôler la limitation du débit 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 : global, product ou API spécifique. Cette flexibilité vous permet de personnaliser la limitation de 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, choisissez 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 en tant que nombre d’appels par seconde, minute ou heure. Par exemple, vous pouvez autoriser 1 000 appels par minute par utilisateur.
Pour définir des limites de débit sur votre API dans Azure Gestion des API, utilisez les stratégies ou rate-limit-by-key
les rate-limit
stratégies. L’ancien définit une limite pour tous les utilisateurs, tandis que celui-ci autorise les limites par clé identifiée (par exemple, un abonnement ou un ID 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 d’état 429 Trop de requêtes, ainsi que l’en-tête retry-after
de réponse 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 les informations de 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 propriétés et total-calls-header-name
les remaining-calls-header-name
propriétés.
<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
les ratelimit-remaining
en-têtes, qui communiquent le nombre d’appels que l’API peut gérer avant de dépasser la limite.
Résumé
L’implémentation de la limitation de débit dans Azure Gestion des API vous aide à créer des API robustes et évolutives. En utilisant la limitation de 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 pourriez entraver l’utilisation ; trop prêté, et vous risquez d’accablant votre API. Avec une planification minutieuse et une surveillance continue, vous pouvez atteindre cet équilibre et maintenir un environnement d’API sain.