Hívás sebességének korlátozása kulcs szerint

A KÖVETKEZŐKRE VONATKOZIK: Fejlesztő | Alapszintű | Alapszintű v2 | Standard | Standard v2 | Prémium

A rate-limit-by-key szabályzat megakadályozza az API-használat kulcsonkénti megugrását azáltal, hogy a hívási arányt egy megadott időszakra korlátozza. A kulcs tetszőleges sztringértékkel rendelkezhet, és általában egy szabályzatkifejezéssel adható meg. Az opcionális növekményes feltétel hozzáadható annak meghatározásához, hogy mely kérelmeket kell a korlátba beleszámítani. 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. A szabályzat konfigurálásához a portál egy irányított, űrlapalapú szerkesztőt biztosít. 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-by-key calls="number"
                   renewal-period="seconds"
                   increment-condition="condition"
                   increment-count="number"
                   counter-key="key value" 
                   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"/> 

Attribútumok

Attribútum Leírás Kötelező Alapértelmezett
Hívások Az engedélyezett hívások maximális száma a megadott időintervallumban renewal-period. A szabályzatkifejezések engedélyezettek. Igen n/a
számlálókulcs A sebességkorlát-szabályzathoz használandó kulcs. Minden kulcsértékhez egyetlen számlálót használ a rendszer minden olyan hatókörhöz, amelyen a szabályzat konfigurálva van. A szabályzatkifejezések engedélyezettek. Igen n/a
növekményes feltétel A logikai kifejezés, amely megadja, hogy a kérést bele kell-e számolni a sebességbe (true). A szabályzatkifejezések engedélyezettek. Nem N.A.
növekményes szám Az a szám, amellyel a számláló kérésenként növekszik. A szabályzatkifejezések engedélyezettek. Nem 0
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 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 szabályzatkifejezés-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 szabályzatkifejezés-változónak a neve, amely minden szabályzat 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.

Használat

Használati megjegyzések

  • 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 a 60 másodpercenkénti 10 hívás sebességkorlátját a hívó IP-címe határozza meg. Az egyes szabályzatok végrehajtása után az adott időszakban engedélyezett többi hívás a változóban remainingCallsPerIPlesz tárolva.

<policies>
    <inbound>
        <base />
        <rate-limit-by-key  calls="10"
              renewal-period="60"
              increment-condition="@(context.Response.StatusCode == 200)"
              counter-key="@(context.Request.IpAddress)"
              remaining-calls-variable-name="remainingCallsPerIP"/>
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

A szabályzatra vonatkozó további információkért és példákért tekintse meg az Azure API Management speciális kérésszabályozását.

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