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 zcela přesné. Rozdíl mezi nakonfigurovaným počtem povolených požadavků a skutečným číslem se liší v závislosti na objemu a rychlosti 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é. Ano
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é. Ano
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é. Ne 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é. Ne
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é. Ne
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é. Ne
total-calls-header-name Název hlavičky odpovědi, jejíž hodnota je hodnota zadaná v calls. Výrazy zásad nejsou povolené. Ne

Elementy

Element (Prvek) Popis Požaduje se
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. Ne
provoz 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. Ne

atributy rozhraní API

Atribut Popis Požaduje se Výchozí
název 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é. Ano
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é. Ano

atributy operace

Atribut Popis Požaduje se Výchozí
název 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é. Ano
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é. Ano

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
  • Tato zásada sleduje volání nezávisle na každé bráně, ve které se používá, včetně bran pracovních prostorů a regionálních bran v nasazení ve více oblastech. Neagreguje data volání napříč celou instancí.

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: