Nutzungskontingent nach Schlüssel festlegen

GILT FÜR: Developer | Basic | Standard | Premium

Die quota-by-key-Richtlinie erzwingt ein erneuerbares oder für die Lebensdauer gültiges Aufruf- und/oder Bandbreitenkontingent pro Schlüssel. Der Schlüssel kann einen beliebigen Zeichenfolgenwert aufweisen und wird in der Regel über einen Richtlinienausdruck angegeben. Optional kann eine inkrementelle Bedingung hinzugefügt werden, um anzugeben, welche Anforderungen für das Kontingent gezählt werden sollen. Wenn der gleiche Schlüsselwert durch mehrere Richtlinien erhöht würde, erfolgt nur eine Erhöhung pro Anforderung. Wenn das Kontingent überschritten wird, erhält der Anrufer einen 403 ForbiddenStatuscode als Antwort. Und die Antwort enthält eine Retry-AfterKopfzeile, deren Wert das empfohlene Wiederholungsintervall in Sekunden ist.

Informationen zu den Unterschieden zwischen Ratenbegrenzungen und Kontingenten finden Sie unter Ratenbegrenzungen und Kontingente.

Hinweis

Wenn zugrunde liegende Computeressourcen auf der Dienstplattform neu gestartet werden, kann API Management auch nach Erreichen eines Kontingents noch für kurze Zeit Anforderungen verarbeiten.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Das Portal unterstützt Sie bei der Konfiguration dieser Richtlinie durch einen formularbasierten, angeleiteten Editor. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

<quota-by-key calls="number"
              bandwidth="kilobytes"
              renewal-period="seconds"
              increment-condition="condition"
              counter-key="key value"
              first-period-start="date-time" />

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
bandwidth Die maximale Gesamtanzahl von Kilobytes, die während des in der renewal-period angegebenen Zeitraums zulässig sind. Richtlinienausdrücke sind nicht zulässig. Es müssen entweder calls oder bandwidth oder beide Attribute zusammen angegeben werden.
calls Die maximale Gesamtanzahl von Aufrufen, die während des in der renewal-period angegebenen Zeitraums zulässig sind. Richtlinienausdrücke sind nicht zulässig. Es müssen entweder calls oder bandwidth oder beide Attribute zusammen angegeben werden.
counter-key Der für quota policy zu verwendende Schlüssel. Für jeden Schlüsselwert wird ein einzelner Indikator für alle Bereiche verwendet, in denen die Richtlinie konfiguriert ist. Richtlinienausdrücke sind zulässig. Ja
increment-condition Der boolesche Ausdruck, der angibt, ob die Anforderung für das Kontingent gezählt werden soll (true). Richtlinienausdrücke sind zulässig. Nein
renewal-period Die Länge des festen Fensters in Sekunden, nach dem die Quote zurückgesetzt wird. Der Beginn eines jeden Zeitraums wird relativ zu berechnet first-period-start. Mindestzeitraum: 300 Sekunden. Wenn der Wert renewal-period auf 0 gesetzt ist, wird der Zeitraum auf „Unendlich“ festgelegt. Richtlinienausdrücke sind nicht zulässig. Ja
first-period-start Das Startdatum und die Startzeit für die Zeiträume zur Kontingentverlängerung im folgenden Format: yyyy-MM-ddTHH:mm:ssZ gemäß ISO 8601-Standard. Richtlinienausdrücke sind nicht zulässig. Nein 0001-01-01T00:00:00Z

Verwendung

Hinweise zur Verwendung

Der counter-key-Attributwert muss für alle APIs in der API Management-Instanz eindeutig sein, wenn Sie den Gesamtwert nicht gemeinsam mit den weiteren APIs verwenden möchten.

Beispiel

<policies>
    <inbound>
        <base />
        <quota-by-key calls="10000" bandwidth="40000" renewal-period="3600"
                      increment-condition="@(context.Response.StatusCode >= 200 && context.Response.StatusCode < 400)"
                      counter-key="@(context.Request.IpAddress)" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Weitere Informationen und Beispiele zu dieser Richtlinie finden Sie unter Erweiterte Anforderungsbegrenzung mit Azure API Management.

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: