Implementieren der Ratenbegrenzung in Azure API Management

Mithilfe der Ratenbegrenzung können Sie die Anzahl der API-Aufrufe begrenzen, die ein Benutzer oder Dienst in einem bestimmten Zeitrahmen tätigen kann. Die Ratenbegrenzung hilft Ihnen dabei, eine faire Nutzung sicherzustellen und verhindert, dass einzelne Benutzer oder Dienste die API-Ressourcen monopolisieren. Azure API Management (APIM) bietet eine bequeme Möglichkeit, Ratenbegrenzungen für Ihre APIs zu implementieren.

Warum Azure API Management?

Azure API Management ist ein leistungsstarker und vielseitiger Clouddienst, mit dem Organisationen APIs für externe Entwickler, Partner und interne Entwickler veröffentlichen können. Es bietet Tools zum Schützen, Verwalten und Skalieren von API-Aufrufen. Eines der Features ist die Steuerung der Ratenbegrenzung, die nützlich ist, um die Integrität und Zuverlässigkeit Ihrer APIs aufrechtzuerhalten.

Konfigurieren der Ratenbegrenzung in Azure API Management

Azure API Management verwendet Richtlinien, um Ratenbegrenzungen zu erzwingen. Sie können diese Richtlinien in verschiedenen Bereichen definieren: global, produkt- oder API-spezifisch. Diese Flexibilität ermöglicht Es Ihnen, die Ratenbegrenzung an die Anforderungen und Nutzungsmuster Ihrer API anzupassen.

Bevor Sie mit der Implementierung der Ratenbegrenzung beginnen, entscheiden Sie sich für die Ratenlimits. Welche Grenzwerte Sie festlegen, hängt von der Kapazität Ihrer API und dem erwarteten Datenverkehr ab. Allgemeine Grenzwerte werden als Anzahl von Anrufen pro Sekunde, Minute oder Stunde festgelegt. Für instance können Sie 1.000 Anrufe pro Minute pro Benutzer zulassen.

Verwenden Sie die rate-limit Richtlinien oderrate-limit-by-key, um Ratenlimits für Ihre API in Azure API Management zu definieren. Erstere legt ein Limit für alle Benutzer fest, während letztere Grenzwerte pro identifiziertem Schlüssel (z. B. ein Abonnement oder eine Benutzer-ID) zulässt.

Hier sehen Sie ein Beispiel für eine Richtlinie, die die Aufrufe auf 1.000 pro Minute begrenzt.

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

Wenn Sie die angegebene Anzahl von Aufrufen überschreiten, sendet Azure API Management einen 429 Too Many Requests status Code, zusammen mit dem retry-after Antwortheader und einer Nachricht, die angibt, wann Sie es erneut versuchen können.

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

Verfügbarmachen von Informationen zum Ratenlimit für Antwortheader

Standardmäßig macht Azure API Management keine Informationen zum Ratenlimit für Antwortheader verfügbar. Die Nichtkommunikation von Ratenlimits macht es für Apps schwierig, das Überschreiten des Grenzwerts zu vermeiden und gedrosselt zu werden. Um Informationen zum Ratenlimit verfügbar zu machen, erweitern Sie die rate-limit Richtlinie mit den remaining-calls-header-name Eigenschaften und 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>

Wenn Sie Ihre API jetzt aufrufen, enthält jede Antwort die ratelimit-remaining Header und ratelimit-limit , die mitteilen, wie viele weitere Aufrufe die API verarbeiten kann, bevor sie den Grenzwert überschreiten.

Zusammenfassung

Die Implementierung der Ratenbegrenzung in Azure API Management hilft Ihnen beim Erstellen robuster und skalierbarer APIs. Durch die Verwendung der Ratenbegrenzung können Sie sicherstellen, dass Ihre API Ihre Benutzer zuverlässig und effizient bedient. Denken Sie daran, dass der Schlüssel darin besteht, die richtige Balance zu finden – zu streng, und Sie könnten die Benutzerfreundlichkeit beeinträchtigen. zu nachsichtig, und Sie riskieren, Ihre API zu überfordern. Mit sorgfältiger Planung und kontinuierlicher Überwachung können Sie dieses Gleichgewicht erreichen und eine fehlerfreie API-Umgebung erhalten.

Nächste Schritte