Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí omezování rychlosti můžete omezit počet volání rozhraní API, která může uživatel nebo služba provádět v určitém časovém období. Omezování rychlosti vám pomůže zajistit spravedlivé využití a zabránit jakémukoli uživateli nebo službě v monopolizaci prostředků rozhraní API. Azure API Management nabízí pohodlný způsob implementace omezování rychlosti pro vaše rozhraní API.
Proč používat Azure API Management?
Azure API Management je výkonná a všestranná cloudová služba, která organizacím pomáhá publikovat rozhraní API pro externí, partnerské a interní vývojáře. Poskytuje nástroje pro zabezpečení, správu a škálování volání rozhraní API. Jednou z jejích funkcí je řízení omezování rychlosti, což je užitečné pro zachování stavu a spolehlivosti vašich rozhraní API.
Konfigurace omezování rychlosti ve službě Azure API Management
Azure API Management používá zásady k vynucení omezování rychlosti. Tyto zásady můžete definovat v různých oborech: globální, produkt nebo specifické pro rozhraní API. Tato flexibilita umožňuje přizpůsobit omezování rychlosti podle požadavků rozhraní API a vzorů použití.
Než začnete s implementací omezování rychlosti, rozhodněte se o limitech rychlosti. Vámi nastavené limity závisí na kapacitě vašeho rozhraní API a na očekávaném provozu. Běžné limity se nastavují jako počet volání za sekundu, minutu nebo hodinu. Můžete například povolit 1 000 volání za minutu na uživatele.
Pokud chcete definovat omezení rychlosti pro vaše rozhraní API ve službě Azure API Management, použijte zásady rate-limit
nebo rate-limit-by-key
. Zásady rate-limit
nastaví limit pro všechny uživatele. Tato rate-limit-by-key
zásada umožňuje omezení pro identifikovaný klíč (například předplatné nebo ID uživatele).
Tady je příklad zásady, která omezuje volání na 1 000 za minutu.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Když překročíte zadaný počet volání, Azure API Management odešle 429 Too Many Requests
stavový kód spolu s retry-after
hlavičkou odpovědi a zprávou, která označuje, kdy to můžete zkusit znovu.
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 60 seconds."
}
Zveřejnění informací o limitu rychlosti v hlavičkách odpovědi
Azure API Management ve výchozím nastavení nezpřístupňuje informace o limitu rychlosti u hlaviček odpovědí. Nekomunikování limitů rychlosti znesnadňuje aplikacím vyhnout se překročení limitu a omezování. Pokud chcete zpřístupnit informace o limitu rychlosti, rozšiřte zásadu rate-limit
o vlastnosti remaining-calls-header-name
a total-calls-header-name
.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Když teď voláte svou API, každá odpověď obsahuje hlavičky ratelimit-remaining
a ratelimit-limit
. Hlavičky komunikují, kolik dalších volání může rozhraní API zpracovat před překročením limitu.
Shrnutí
Implementace omezování rychlosti ve službě Azure API Management pomáhá vytvářet robustní a škálovatelná rozhraní API. Pomocí omezování rychlosti můžete zajistit, aby vaše rozhraní API spolehlivě a efektivně sloužilo vašim uživatelům. Klíčem je najít správnou rovnováhu. Pokud je limit rychlosti příliš striktní, můžete bránit použitelnosti. Pokud je limit rychlosti příliš mírný, riskujete zahlcení rozhraní API. Díky pečlivému plánování a průběžnému monitorování můžete tohoto vyvážení dosáhnout a udržovat prostředí rozhraní API, které je v pořádku.