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-period engedé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
- Szabályzatszakaszok: bejövő
- Szabályzathatókörök: globális, munkaterület, termék, API, művelet
- Átjárók: klasszikus, v2, saját üzemeltetésű
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 remainingCallsPerIP
lesz 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.
Kapcsolódó szabályzatok
Kapcsolódó tartalom
A szabályzatok használatával kapcsolatos további információkért lásd:
- Oktatóanyag: AZ API átalakítása és védelme
- Szabályzathivatkozás a szabályzatutasságok és azok beállításainak teljes listájához
- Házirend-kifejezések
- Házirendek beállítása vagy szerkesztése
- Szabályzatkonfigurációk újrafelhasználása
- Szabályzatrészletek adattára
- Szabályzatok létrehozása az Azure-hoz készült Microsoft Copilot használatával