Freigeben über


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

Aufgrund der verteilten Art der Drosselungsarchitektur ist die Zinsbegrenzung nie vollständig genau. Der Unterschied zwischen der konfigurierten Anzahl zulässiger Anforderungen und der tatsächlichen Zahl variiert je nach 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
Aufrufe Die maximale Gesamtanzahl von Aufrufen, die während des in renewal-period angegebenen Zeitraums zulässig sind Richtlinienausdrücke sind nicht zulässig. Ja
Verlängerungszeitraum 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. Nein 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
Restaufrufe-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
Restaufrufe-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
Vorgang 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

Attribut 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.
Aufrufe Die maximale Gesamtanzahl von Aufrufen, die während des in renewal-period angegebenen Zeitraums zulässig sind Richtlinienausdrücke sind nicht zulässig. Ja
Verlängerungszeitraum 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

Attribut 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.
Aufrufe Die maximale Gesamtanzahl von Aufrufen, die während des in renewal-period angegebenen Zeitraums zulässig sind Richtlinienausdrücke sind nicht zulässig. Ja
Verlängerungszeitraum 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

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
  • Diese Richtlinie verfolgt Aufrufe unabhängig von jedem Gateway, in dem es angewendet wird, einschließlich Arbeitsbereichsgateways und regionalen Gateways in einer Bereitstellung mit mehreren Regionen. Es aggregiert keine Aufrufdaten über die gesamte Instanz hinweg.

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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: