Aufrufrate nach Abonnement begrenzen
GILT FÜR: Alle API Management-Ebenen
Die rate-limit
-Richtlinie verhindert API-Nutzungsspitzen auf Abonnementbasis, indem sie die Aufrufrate auf eine angegebene Anzahl pro angegebenem Zeitraum begrenzt. Wenn die Aufrufrate überschritten wird, empfängt der Aufrufer einen 429 Too Many Requests
-Antwortstatuscode.
Informationen zu den Unterschieden zwischen Ratenbegrenzungen und Kontingenten finden Sie unter Ratenbegrenzungen und Kontingente.
Achtung
Da die Einschränkungsarchitektur verteilt ist, ist die Begrenzung der Rate nie ganz genau. Die Differenz zwischen der konfigurierten und der tatsächlichen Anzahl zugelassener Anforderungen variiert basierend auf Anforderungsvolumen und -rate, Back-End-Latenz und anderen Faktoren.
Hinweis
Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.
Richtlinienanweisung
<rate-limit calls="number" renewal-period="seconds" retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-calls-header-name="header name"
remaining-calls-variable-name="policy expression variable name"
total-calls-header-name="header name">
<api name="API name" id="API id" calls="number" renewal-period="seconds" >
<operation name="operation name" id="operation id" calls="number" renewal-period="seconds" />
</api>
</rate-limit>
Attribute
Attribut | BESCHREIBUNG | Erforderlich | Standard |
---|---|---|---|
calls | Die maximale Gesamtanzahl von Aufrufen, die während des in renewal-period angegebenen Zeitraums zulässig sind Richtlinienausdrücke sind nicht zulässig. |
Ja | – |
renewal-period | Die Länge des gleitenden Fensters in Sekunden, in der die Anzahl zulässiger Anforderungen den in calls angegebenen Wert nicht überschreiten darf. Maximal zulässiger Wert: 300 Sekunden. Richtlinienausdrücke sind nicht zulässig. |
Ja | – |
retry-after-header-name | Der Name eines benutzerdefinierten Antwort-Headers, dessen Wert das empfohlene Wiederholungsintervall in Sekunden ist, nachdem die angegebene Anrufrate überschritten wurde. Richtlinienausdrücke sind nicht zulässig. | No | Retry-After |
retry-after-variable-name | Der Name einer Variablen, die das empfohlene Wiederholungsintervall in Sekunden speichert, nach dem die angegebene Aufrufrate überschritten wird. Richtlinienausdrücke sind nicht zulässig. | Nein | – |
remaining-calls-header-name | Der Name einer Antwortheaders, dessen Wert nach jeder Richtlinienausführung die Anzahl der verbleibenden Aufrufe ist, die für den Zeitraum zulässig sind, der in renewal-period angegeben ist. Richtlinienausdrücke sind nicht zulässig. |
Nein | – |
remaining-calls-variable-name | Der Name einer Variablen, in der nach jeder Richtlinienausführung die Anzahl der verbleibenden Aufrufe gespeichert wird, die für den Zeitraum zulässig sind, der in renewal-period angegeben ist. Richtlinienausdrücke sind nicht zulässig. |
Nein | – |
total-calls-header-name | Der Name eines Antwortheaders, dessen Wert der in calls angegebene Wert ist. Richtlinienausdrücke sind nicht zulässig. |
Nein | – |
Elemente
Element | BESCHREIBUNG | Erforderlich |
---|---|---|
api | Fügen Sie mindestens eins dieser Elemente hinzu, um eine Aufrufratenbegrenzung für APIs innerhalb des Produkts zu erzwingen. Produkt- und API-Aufrufratenbegrenzungen werden unabhängig voneinander angewendet. Auf „api“ kann über name oder id verwiesen werden. Wenn beide Attribute bereitgestellt werden, wird id verwendet und name ignoriert. |
Nein |
operation | Fügen Sie mindestens eins dieser Elemente hinzu, um eine Aufrufratenbegrenzung auf Vorgänge innerhalb einer API zu erzwingen. Aufrufratenbegrenzungen für Produkte, APIs und Vorgänge werden unabhängig voneinander angewendet. Auf „operation“ kann über name oder id verwiesen werden. Wenn beide Attribute bereitgestellt werden, wird id verwendet und name ignoriert. |
Nein |
API-Attribute
attribute | BESCHREIBUNG | Erforderlich | Standard |
---|---|---|---|
name | Der Name der API, auf die die Ratenbegrenzung angewendet werden soll. | Es muss entweder name oder id angegeben werden. |
– |
id | Die ID der API, auf die die Ratenbegrenzung angewendet werden soll. | Es muss entweder name oder id angegeben werden. |
– |
calls | Die maximale Gesamtanzahl von Aufrufen, die während des in renewal-period angegebenen Zeitraums zulässig sind Richtlinienausdrücke sind nicht zulässig. |
Ja | – |
renewal-period | Die Länge des gleitenden Fensters in Sekunden, in der die Anzahl zulässiger Anforderungen den in calls angegebenen Wert nicht überschreiten darf. Maximal zulässiger Wert: 300 Sekunden. Richtlinienausdrücke sind nicht zulässig. |
Ja | – |
Vorgangsattribute
attribute | BESCHREIBUNG | Erforderlich | Standard |
---|---|---|---|
name | Der Name des Vorgangs, auf den die Ratenbegrenzung angewendet werden soll. | Es muss entweder name oder id angegeben werden. |
– |
id | Die ID des Vorgangs, auf den die Ratenbegrenzung angewendet werden soll. | Es muss entweder name oder id angegeben werden. |
– |
calls | Die maximale Gesamtanzahl von Aufrufen, die während des in renewal-period angegebenen Zeitraums zulässig sind Richtlinienausdrücke sind nicht zulässig. |
Ja | – |
renewal-period | Die Länge des gleitenden Fensters in Sekunden, in der die Anzahl zulässiger Anforderungen den in calls angegebenen Wert nicht überschreiten darf. Maximal zulässiger Wert: 300 Sekunden. Richtlinienausdrücke sind nicht zulässig. |
Ja | – |
Verwendung
- Richtlinienabschnitte: inbound
- Richtlinienbereiche: product, API, operation
- Gateways: klassisch, v2, Verbrauch, selbstgehostet, Arbeitsbereich
Hinweise zur Verwendung
- Diese Richtlinie kann pro Richtliniendefinition nur einmal verwendet werden.
- Diese Richtlinie wird nur angewendet, wenn mithilfe eines Abonnementschlüssels auf eine API zugegriffen wird.
- Ratengrenzwerte in einem selbstgehosteten Gateway können so konfiguriert werden, dass sie lokal (zwischen Gatewayinstanzen über Clusterknoten hinweg) synchronisiert werden, z. B. über die Helm-Diagrammbereitstellung für Kubernetes oder mithilfe der Azure-Portal Bereitstellungsvorlagen. Ratengrenzwerte werden jedoch nicht mit anderen in der API Management-Instanz konfigurierten Gateway-Ressourcen synchronisiert, einschließlich des verwalteten Gateways in der Cloud. Weitere Informationen
Beispiel
Im folgenden Beispiel beträgt das Ratenlimit pro Abonnement 20 Aufrufe pro 90 Sekunden. Nach jeder Richtlinienausführung werden die verbleibenden Aufrufe, die im Zeitraum zulässig sind, in der Variablen remainingCallsPerSubscription
gespeichert.
<policies>
<inbound>
<base />
<rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
</inbound>
<outbound>
<base />
</outbound>
</policies>
Verwandte Richtlinien
Zugehöriger Inhalt
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
- Tutorial: Transformieren und Schützen Ihrer API
- Unter Richtlinien für die API-Verwaltung finden Sie eine komplette Liste der Richtlinienanweisungen und der zugehörigen Einstellungen.
- Richtlinienausdrücke
- Festlegen oder Bearbeiten von Richtlinien
- Wiederverwenden von Richtlinienkonfigurationen
- Repository für Richtliniencodeausschnitte
- Azure API Management-Richtlinientoolkit
- Erstellen von Richtlinien mit Microsoft Copilot in Azure