Omezení četnosti volání podle předplatného
PLATÍ PRO: Všechny úrovně služby API Management
Tato rate-limit
zásada zabraňuje špičkám využití rozhraní API na základě předplatného omezením četnosti volání na zadané číslo za zadané časové období. Při překročení míry volání obdrží volající stavový 429 Too Many Requests
kód odpovědi.
Pokud chcete porozumět rozdílu mezi limity sazeb a kvótami, přečtěte si téma Omezení rychlosti a kvóty.
Upozornění
Vzhledem k distribuované povaze architektury omezování není omezování rychlosti nikdy úplně přesné. Rozdíl mezi nakonfigurovaným a skutečným počtem povolených požadavků se liší v závislosti na objemu a četnosti požadavků, latenci back-endu a dalších faktorech.
Poznámka:
Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.
Prohlášení o zásadách
<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>
Atributy
Atribut | Popis | Požaduje se | Výchozí |
---|---|---|---|
volá | Maximální celkový počet volání povolených během časového intervalu zadaného v renewal-period . Výrazy zásad nejsou povolené. |
Yes | – |
období prodloužení | Délka v sekundách posuvného okna, během kterého by počet povolených požadavků neměl překročit hodnotu zadanou v calls . Maximální povolená hodnota: 300 sekund. Výrazy zásad nejsou povolené. |
Yes | – |
retry-after-header-name | Název vlastní hlavičky odpovědi, jejíž hodnota je doporučený interval opakování v sekundách po překročení zadané četnosti volání. Výrazy zásad nejsou povolené. | No | Retry-After |
retry-after-variable-name | Název proměnné, která ukládá doporučený interval opakování v sekundách po překročení zadané četnosti volání. Výrazy zásad nejsou povolené. | No | – |
remaining-calls-header-name | Název hlavičky odpovědi, jejíž hodnota po každém spuštění zásady je počet zbývajících volání povolených pro časový interval zadaný v sadě renewal-period . Výrazy zásad nejsou povolené. |
No | – |
remaining-calls-variable-name | Název proměnné, která po každém spuštění zásady ukládá počet zbývajících volání povolených pro časový interval zadaný v sadě renewal-period . Výrazy zásad nejsou povolené. |
No | – |
total-calls-header-name | Název hlavičky odpovědi, jejíž hodnota je hodnota zadaná v calls . Výrazy zásad nejsou povolené. |
No | – |
Elementy
Element (Prvek) | Popis | Povinní účastníci |
---|---|---|
api | Přidejte jeden nebo více těchto prvků, aby se pro rozhraní API v rámci produktu uložil limit četnosti volání. Limity četnosti volání produktů a rozhraní API se uplatňují nezávisle. Na rozhraní API lze odkazovat prostřednictvím name nebo id . Pokud jsou k dispozici oba atributy, id budou použity a name budou ignorovány. |
No |
operation | Přidejte jeden nebo více těchto prvků pro omezení četnosti volání pro operace v rámci rozhraní API. Limity četnosti volání produktů, rozhraní API a operací se uplatňují nezávisle na sobě. Operaci lze odkazovat buď prostřednictvím name , nebo id . Pokud jsou k dispozici oba atributy, id budou použity a name budou ignorovány. |
No |
atributy rozhraní API
Atribut | Popis | Požaduje se | Výchozí |
---|---|---|---|
name | Název rozhraní API, pro které se má použít limit rychlosti. | Musí name být zadána nebo id musí být zadána. |
– |
ID | ID rozhraní API, pro které se má použít limit rychlosti. | Musí name být zadána nebo id musí být zadána. |
– |
volá | Maximální celkový počet volání povolených během časového intervalu zadaného v renewal-period . Výrazy zásad nejsou povolené. |
Yes | – |
období prodloužení | Délka v sekundách posuvného okna, během kterého by počet povolených požadavků neměl překročit hodnotu zadanou v calls . Maximální povolená hodnota: 300 sekund. Výrazy zásad nejsou povolené. |
Yes | – |
atributy operace
Atribut | Popis | Požaduje se | Výchozí |
---|---|---|---|
name | Název operace, pro kterou se má použít limit rychlosti. | Musí name být zadána nebo id musí být zadána. |
– |
ID | ID operace, pro kterou se má použít limit rychlosti. | Musí name být zadána nebo id musí být zadána. |
– |
volá | Maximální celkový počet volání povolených během časového intervalu zadaného v renewal-period . Výrazy zásad nejsou povolené. |
Yes | – |
období prodloužení | Délka v sekundách posuvného okna, během kterého by počet povolených požadavků neměl překročit hodnotu zadanou v calls . Maximální povolená hodnota: 300 sekund. Výrazy zásad nejsou povolené. |
Yes | – |
Využití
- Oddíly zásad: příchozí
- Rozsahy zásad: produkt, rozhraní API, operace
- Brány: Classic, v2, consumption, self-host, workspace
Poznámky k využití
- Tuto zásadu lze použít pouze jednou pro každou definici zásady.
- Tato zásada se použije jenom v případě, že k rozhraní API přistupujete pomocí klíče předplatného.
- Počty omezení rychlosti v bráně v místním prostředí je možné nakonfigurovat tak, aby se synchronizovaly místně (mezi instancemi bran napříč uzly clusteru), například prostřednictvím nasazení chartu Helm pro Kubernetes nebo pomocí šablon nasazení webu Azure Portal. Počty omezení rychlosti se ale nesynchronizují s jinými prostředky brány nakonfigurovanými v instanci služby API Management, včetně spravované brány v cloudu. Další informace
Příklad
V následujícím příkladu je limit sazby za předplatné 20 volání za 90 sekund. Po každém spuštění zásad jsou zbývající volání povolená v časovém období uložena v proměnné remainingCallsPerSubscription
.
<policies>
<inbound>
<base />
<rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
</inbound>
<outbound>
<base />
</outbound>
</policies>
Související zásady
Související obsah
Další informace o práci se zásadami najdete v tématech:
- Kurz: Transformace a ochrana rozhraní API
- Referenční informace o zásadách pro úplný seznam prohlášení o zásadách a jejich nastavení
- Výrazy zásad
- Nastavení nebo úprava zásad
- Opakované použití konfigurací zásad
- Úložiště fragmentů zásad
- Sada nástrojů zásad služby Azure API Management
- Vytváření zásad pomocí Microsoft Copilotu v Azure