Sdílet prostřednictvím


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í

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>

Další informace o práci se zásadami najdete v tématech: