Delen via


Snelheidsbeperking implementeren in Azure API Management

Met snelheidsbeperking kunt u het aantal API-aanroepen beperken dat een gebruiker of service in een bepaald tijdsbestek kan maken. Snelheidsbeperking helpt u ervoor te zorgen dat er eerlijk gebruik wordt gegarandeerd en voorkomt dat één gebruiker of service de API-resources in beslag kan maken. Azure API Management (APIM) biedt een handige manier om snelheidsbeperking voor uw API's te implementeren.

Waarom Azure API Management?

Azure API Management is een krachtige en veelzijdige cloudservice waarmee organisaties API's kunnen publiceren naar externe, partner- en interne ontwikkelaars. Het biedt hulpprogramma's voor het beveiligen, beheren en schalen van API-aanroepen. Een van de functies is het beheren van snelheidsbeperking, wat handig is voor het onderhouden van de status en betrouwbaarheid van uw API's.

Snelheidsbeperking configureren in Azure API Management

Azure API Management maakt gebruik van beleidsregels om snelheidsbeperking af te dwingen. U kunt deze beleidsregels definiëren op verschillende bereiken: globaal, product of API-specifiek. Met deze flexibiliteit kunt u de snelheidsbeperking aanpassen aan de vereisten en gebruikspatronen van uw API.

Voordat u begint met het implementeren van frequentielimieten, moet u beslissen over de frequentielimieten. De limieten die u instelt, zijn afhankelijk van de capaciteit van uw API en het verkeer dat u verwacht. Algemene limieten worden ingesteld als een aantal oproepen per seconde, minuut of uur. U kunt bijvoorbeeld 1000 oproepen per minuut per gebruiker toestaan.

Als u frequentielimieten voor uw API in Azure API Management wilt definiëren, gebruikt u het beleid of rate-limit-by-key de rate-limit beleidsregels. De eerste stelt een limiet in voor alle gebruikers, terwijl de laatste limieten per geïdentificeerde sleutel toestaat (zoals een abonnement of een gebruikers-id).

Hier volgt een voorbeeld van een beleid dat de aanroepen beperkt tot 1000 per minuut.

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

Wanneer u het opgegeven aantal aanroepen overschrijdt, verzendt Azure API Management een statuscode van 429 Te veel aanvragen, samen met de retry-after antwoordheader en een bericht dat aangeeft wanneer u het opnieuw kunt proberen.

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

Frequentielimietinformatie beschikbaar maken voor antwoordheaders

Standaard biedt Azure API Management geen informatie over frequentielimieten voor antwoordheaders. Het communiceren van frequentielimieten maakt het moeilijk voor apps om te voorkomen dat de limiet wordt overschreden en beperkt worden. Als u informatie over frequentielimieten beschikbaar wilt maken, kunt u het rate-limit beleid uitbreiden met de remaining-calls-header-name en total-calls-header-name eigenschappen.

<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>

Wanneer u uw API nu aanroept, bevat elk antwoord de ratelimit-remaining en ratelimit-limit headers, die aangeven hoeveel meer aanroepen de API kan verwerken voordat de limiet wordt overschreden.

Samenvatting

Het implementeren van snelheidsbeperking in Azure API Management helpt u bij het maken van robuuste en schaalbare API's. Door snelheidsbeperking te gebruiken, kunt u ervoor zorgen dat uw API uw gebruikers betrouwbaar en efficiënt bedient. Vergeet niet dat de sleutel is om het juiste evenwicht te vinden – te strikt, en u kunt de bruikbaarheid belemmeren; te lenient en u riskant uw API te overweldigen. Met zorgvuldige planning en continue bewaking kunt u dit evenwicht bereiken en een gezonde API-omgeving onderhouden.

Volgende stappen