Freigeben über


Implementieren von Ratenbeschränkungen in Azure API Management

Mithilfe der Geschwindigkeitsbeschränkung können Sie die Anzahl der API-Aufrufe einschränken, die ein Benutzer oder Dienst in einem bestimmten Zeitraum durchführen kann. Durch die Begrenzung der Raten können Sie eine faire Nutzung sicherstellen und verhindern, dass einzelne Benutzer oder Dienste die API-Ressourcen monopolisieren. Azure API Management (APIM) bietet eine bequeme Möglichkeit zum Implementieren von Ratenbeschränkungen für Ihre APIs.

Warum Azure API Management?

Azure API Management ist ein leistungsstarker und vielseitiger Clouddienst, der Organisationen hilft, APIs für externe, Partner und interne Entwickler zu veröffentlichen. Es bietet Tools zum Sichern, Verwalten und Skalieren von API-Aufrufen. Eines seiner Features ist die Steuerung der Ratebegrenzung, die nützlich ist, um die Integrität und Zuverlässigkeit Ihrer APIs aufrechtzuerhalten.

Konfigurieren von Ratenbeschränkungen in Azure API Management

Azure API Management verwendet Richtlinien zum Erzwingen von Ratenbeschränkungen. Sie können diese Richtlinien in verschiedenen Bereichen definieren: global, produkt- oder API-spezifisch. Diese Flexibilität ermöglicht es Ihnen, die Ratelimitierung entsprechend den Anforderungen und Nutzungsmustern Ihrer API anzupassen.

Bevor Sie mit der Implementierung der Zinsbegrenzung beginnen, entscheiden Sie sich für die Zinslimits. Die von Ihnen festgelegten Grenzwerte hängen von der Kapazität Ihrer API und dem erwarteten Datenverkehr ab. Allgemeine Grenzwerte werden als eine Anzahl von Anrufen pro Sekunde, Minute oder Stunde festgelegt. Beispielsweise können Sie 1000 Anrufe pro Minute pro Benutzer zulassen.

Verwenden Sie die rate-limit Richtlinien oder rate-limit-by-key Die Richtlinien, um Die Ratenbeschränkungen für Ihre API in Azure API Management zu definieren. Der frühere Legt einen Grenzwert für alle Benutzer fest, während letztere Grenzwerte pro identifiziertem Schlüssel (z. B. ein Abonnement oder eine Benutzer-ID) zulässt.

Hier ist ein Beispiel für eine Richtlinie, die die Aufrufe auf 1000 pro Minute beschränkt.

<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 Statuscode von 429 Zu viele Anforderungen, zusammen mit dem retry-after Antwortheader und einer Meldung, 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 Ratelimit für Antwortheader

Standardmäßig macht Azure API Management keine Informationen zum Zinsgrenzwert für Antwortheader verfügbar. Durch die Nichtkommunikation von Ratenlimits ist es für Apps schwierig, das Limit zu überschreiten und eingeschränkt zu werden. Um Informationen zum Preislimit verfügbar zu machen, erweitern Sie die rate-limit Richtlinie mit den remaining-calls-header-name Werten und total-calls-header-name Eigenschaften.

<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 Und ratelimit-limit Header, die kommunizieren, wie viele weitere Aufrufe die API verarbeiten kann, bevor sie den Grenzwert überschreiten.

Zusammenfassung

Die Implementierung von Ratenbeschränkungen in Azure API Management hilft Ihnen beim Erstellen robuster und skalierbarer APIs. Durch die Verwendung von Ratenbeschränkungen können Sie sicherstellen, dass Ihre API Ihren Benutzern zuverlässig und effizient dient. Denken Sie daran, dass der Schlüssel darin besteht, das richtige Gleichgewicht zu finden – zu streng, und Sie könnten die Nutzbarkeit behindern; zu lenient, und Sie riskieren eine Überwältigung Ihrer API. Mit sorgfältiger Planung und kontinuierlicher Überwachung können Sie dieses Gleichgewicht erreichen und eine gesunde API-Umgebung verwalten.

Nächste Schritte