Hívássebesség korlátozása előfizetés szerint

A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint

A rate-limit szabályzat megakadályozza, hogy az API-használat előfizetésenként megnőjön, ha a hívási arányt egy megadott időszakra korlátozza. A hívási sebesség túllépésekor a hívó válaszállapot-kódot 429 Too Many Requests kap.

A sebességkorlátok és a kvóták közötti különbség megértéséhez tekintse meg a sebességkorlátokat és a kvótákat.

Figyelemfelhívás

A szabályozási architektúra elosztott jellege miatt a sebességkorlátozás soha nem teljesen pontos. Az engedélyezett kérelmek konfigurált és valós száma közötti különbség a kérések mennyiségének és sebességének, a háttér késésének és egyéb tényezőknek megfelelően változik.

Feljegyzés

Állítsa be a szabályzat elemeit és gyermekelemeit a szabályzatutasításban megadott sorrendben. További információ az API Management-szabályzatok beállításáról és szerkesztéséről.

Szabályzatutasítás

<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>

Attribútumok

Attribútum Leírás Kötelező Alapértelmezett
Hívások A megadott időintervallumban renewal-periodengedélyezett hívások maximális teljes száma. A szabályzatkifejezések nem engedélyezettek. Igen n/a
megújítási időszak A tolóablak másodpercben megadott hossza, amely során az engedélyezett kérelmek száma nem haladhatja meg a megadott callsértéket. Megengedett maximális érték: 300 másodperc. A szabályzatkifejezések nem engedélyezettek. Igen n/a
újrapróbálkozás a fejléc után Annak az egyéni válaszfejlécnek a neve, amelynek értéke az ajánlott újrapróbálkozási időköz másodpercben a megadott hívási sebesség túllépése után. A szabályzatkifejezések nem engedélyezettek. Nem Retry-After
újrapróbálkozó változó utáni név Egy változó neve, amely a megadott hívási sebesség túllépése után másodpercekben tárolja az ajánlott újrapróbálkozási időközt. A szabályzatkifejezések nem engedélyezettek. Nem N.A.
fennmaradó hívások-fejléc-név Annak a válaszfejlécnek a neve, amelynek értéke az egyes szabályzatok végrehajtása után a megadott időintervallumban renewal-periodengedélyezett hívások száma. A szabályzatkifejezések nem engedélyezettek. Nem N.A.
fennmaradó hívások-változó neve Annak a változónak a neve, amely az egyes szabályzatok végrehajtása után tárolja a fennmaradó hívások számát a megadott időintervallumban renewal-period. A szabályzatkifejezések nem engedélyezettek. Nem N.A.
total-calls-header-name Annak a válaszfejlécnek a neve, amelynek értéke a megadott callsérték. A szabályzatkifejezések nem engedélyezettek. Nem N.A.

Elemek

Elem Leírás Kötelező
api Adjon hozzá egy vagy több ilyen elemet, hogy a terméken belüli API-kra vonatkozó hívási sebességkorlátot szabjon ki. A termék- és API-hívások sebességkorlátjai egymástól függetlenül lesznek alkalmazva. Az API-ra vagy a nameid. Ha mindkét attribútum meg van adva, id a rendszer használja és name figyelmen kívül hagyja. Nem
művelet Adjon hozzá egy vagy több ilyen elemet, hogy hívássebesség-korlátot szabjon az API-n belüli műveletekre. A termék-, API- és művelethívási sebességkorlátok egymástól függetlenül lesznek alkalmazva. A műveletre a vagy ida segítségével name lehet hivatkozni. Ha mindkét attribútum meg van adva, id a rendszer használja és name figyelmen kívül hagyja. Nem

api-attribútumok

Attribútum Leírás Kötelező Alapértelmezett
név Annak az API-nak a neve, amelyre alkalmazni szeretné a sebességkorlátot. Vagy name meg id kell adni. n/a
id Annak az API-nak az azonosítója, amelyre alkalmazni szeretné a sebességkorlátot. Vagy name meg id kell adni. n/a
Hívások A megadott időintervallumban renewal-periodengedélyezett hívások maximális teljes száma. A szabályzatkifejezések nem engedélyezettek. Igen n/a
megújítási időszak A tolóablak másodpercben megadott hossza, amely során az engedélyezett kérelmek száma nem haladhatja meg a megadott callsértéket. Megengedett maximális érték: 300 másodperc. A szabályzatkifejezések nem engedélyezettek. Igen n/a

műveleti attribútumok

Attribútum Leírás Kötelező Alapértelmezett
név Annak a műveletnek a neve, amelyre alkalmazni szeretné a sebességkorlátot. Vagy name meg id kell adni. n/a
id Annak a műveletnek az azonosítója, amelyre alkalmazni szeretné a sebességkorlátot. Vagy name meg id kell adni. n/a
Hívások A megadott időintervallumban renewal-periodengedélyezett hívások maximális teljes száma. A szabályzatkifejezések nem engedélyezettek. Igen n/a
megújítási időszak A tolóablak másodpercben megadott hossza, amely során az engedélyezett kérelmek száma nem haladhatja meg a megadott callsértéket. Megengedett maximális érték: 300 másodperc. A szabályzatkifejezések nem engedélyezettek. Igen n/a

Használat

Használati megjegyzések

  • Ez a szabályzat szabályzatdefiníciónként csak egyszer használható.
  • Ezt a szabályzatot csak akkor alkalmazza a rendszer, ha egy API-t egy előfizetési kulccsal érnek el.
  • A sebességkorlátok száma egy saját üzemeltetésű átjáróban konfigurálható helyi szinkronizálásra (a fürtcsomópontok közötti átjárópéldányok között), például a Helm-diagram Kubernetes-alapú üzembe helyezésével vagy az Azure Portal üzembe helyezési sablonjainak használatával. A sebességkorlátok száma azonban nem szinkronizálható az API Management-példányban konfigurált többi átjáróerőforrással, beleértve a felhőben lévő felügyelt átjárót is. További információ

Példa

Az alábbi példában az előfizetésenkénti sebességkorlát 20 hívás/90 másodperc. Az egyes szabályzatok végrehajtása után az adott időszakban engedélyezett többi hívás a változóban remainingCallsPerSubscriptionlesz tárolva.

<policies>
    <inbound>
        <base />
        <rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

A szabályzatok használatával kapcsolatos további információkért lásd: