Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Alla API Management-nivåer
Principen rate-limit förhindrar API-användningstoppar per prenumeration genom att begränsa anropsfrekvensen till ett angivet tal per angiven tidsperiod. När samtalsfrekvensen överskrids får anroparen en 429 Too Many Requests svarsstatuskod.
Information om skillnaden mellan hastighetsgränser och kvoter finns i Hastighetsgränser och kvoter.
Varning
På grund av begränsningsarkitekturens distribuerade karaktär är hastighetsbegränsningen aldrig helt korrekt. Skillnaden mellan det konfigurerade antalet tillåtna begäranden och det faktiska antalet varierar beroende på begärandevolym och frekvens, svarstid för serverdelen och andra faktorer.
Kommentar
Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.
Principuttryck
<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>
Attribut
| Attribut | beskrivning | Obligatoriskt | Standardvärde |
|---|---|---|---|
| Samtal | Det maximala totala antalet anrop som tillåts under tidsintervallet som anges i renewal-period. Principuttryck tillåts inte. |
Ja | Ej tillämpligt |
| förnyelseperiod | Längden i sekunder för skjutfönstret där antalet tillåtna begäranden inte ska överskrida det värde som anges i calls. Högsta tillåtna värde: 300 sekunder. Principuttryck tillåts inte. |
Ja | Ej tillämpligt |
| retry-after-header-name | Namnet på en anpassad svarsrubrik vars värde är det rekommenderade återförsöksintervallet i sekunder efter att den angivna anropsfrekvensen har överskridits. Principuttryck tillåts inte. | Nej | Retry-After |
| retry-after-variable-name | Namnet på en variabel som lagrar det rekommenderade återförsöksintervallet i sekunder efter att den angivna anropsfrekvensen har överskridits. Principuttryck tillåts inte. | Nej | Ej tillämpligt |
| remaining-calls-header-name | Namnet på en svarsrubrik vars värde efter varje principkörning är antalet återstående anrop som tillåts för tidsintervallet som anges i renewal-period. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
| remaining-calls-variable-name | Namnet på en variabel som efter varje principkörning lagrar antalet återstående anrop som tillåts för det tidsintervall som anges i renewal-period. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
| total-calls-header-name | Namnet på en svarsrubrik vars värde är det värde som anges i calls. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
Element
| Komponent | beskrivning | Obligatoriskt |
|---|---|---|
| API | Lägg till ett eller flera av dessa element för att införa en anropsfrekvensgräns för API:er i produkten. Prisgränser för produkt- och API-anrop tillämpas oberoende av varandra. API kan refereras antingen via name eller id. Om båda attributen anges id används och name ignoreras. |
Nej |
| Operation | Lägg till ett eller flera av dessa element för att införa en gräns för anropsfrekvens för åtgärder i ett API. Gränser för produkt-, API- och åtgärdsanrop tillämpas oberoende av varandra. Åtgärden kan refereras antingen via name eller id. Om båda attributen anges id används och name ignoreras. |
Nej |
api-attribut
| Attribut | beskrivning | Obligatoriskt | Standardvärde |
|---|---|---|---|
| namn | Namnet på API:et för vilket hastighetsgränsen ska tillämpas. | Antingen name eller id måste anges. |
Ej tillämpligt |
| Id-nummer | ID:t för API:et för vilket hastighetsgränsen ska tillämpas. | Antingen name eller id måste anges. |
Ej tillämpligt |
| Samtal | Det maximala totala antalet anrop som tillåts under tidsintervallet som anges i renewal-period. Principuttryck tillåts inte. |
Ja | Ej tillämpligt |
| förnyelseperiod | Längden i sekunder för skjutfönstret där antalet tillåtna begäranden inte ska överskrida det värde som anges i calls. Högsta tillåtna värde: 300 sekunder. Principuttryck tillåts inte. |
Ja | Ej tillämpligt |
åtgärdsattribut
| Attribut | beskrivning | Obligatoriskt | Standardvärde |
|---|---|---|---|
| namn | Namnet på den åtgärd för vilken hastighetsgränsen ska tillämpas. | Antingen name eller id måste anges. |
Ej tillämpligt |
| Id-nummer | ID:t för den åtgärd för vilken hastighetsgränsen ska tillämpas. | Antingen name eller id måste anges. |
Ej tillämpligt |
| Samtal | Det maximala totala antalet anrop som tillåts under tidsintervallet som anges i renewal-period. Principuttryck tillåts inte. |
Ja | Ej tillämpligt |
| förnyelseperiod | Längden i sekunder för skjutfönstret där antalet tillåtna begäranden inte ska överskrida det värde som anges i calls. Högsta tillåtna värde: 300 sekunder. Principuttryck tillåts inte. |
Ja | Ej tillämpligt |
Förbrukning
- Principavsnitt: inkommande
- Principomfattningar: produkt, API, åtgärd
- Gatewayer: klassisk, v2, förbrukning, lokalt installerad, arbetsyta
Användningsanteckningar
- Den här principen kan bara användas en gång per principdefinition.
- Den här principen tillämpas endast när ett API används med hjälp av en prenumerationsnyckel.
- Frekvensgränsantal i en lokalt installerad gateway kan konfigureras för att synkronisera lokalt (bland gatewayinstanser mellan klusternoder), till exempel via Helm-diagramdistribution för Kubernetes eller med hjälp av Azure Portal distributionsmallar. Frekvensgränsantal synkroniseras dock inte med andra gatewayresurser som konfigurerats i API Management-instansen, inklusive den hanterade gatewayen i molnet. Läs mer
- Den här principen spårar anrop oberoende av varandra vid varje gateway där den tillämpas, inklusive arbetsytegatewayer och regionala gatewayer i en distribution i flera regioner. Den aggregerar inte anropsdata över hela instansen.
Exempel
I följande exempel är gränsen per prenumeration 20 anrop per 90 sekunder. Efter varje principkörning lagras de återstående anropen som tillåts under tidsperioden i variabeln remainingCallsPerSubscription.
<policies>
<inbound>
<base />
<rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
</inbound>
<outbound>
<base />
</outbound>
</policies>
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Principreferens för en fullständig lista över principinstruktioner och deras inställningar
- Principuttryck
- Ange eller redigera principer
- Återanvända principkonfigurationer
- Lagringsplats för principfragment
- Lagringsplats för principlekplats
- Principverktyg för Azure API Management
- Få Hjälp med Copilot för att skapa, förklara och felsöka principer