Rychlý start: Nastavení limitů četnosti požadavků
Poznámka:
Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.
Tento článek se vztahuje na: ❎ Basic/Standard ✅ Enterprise
V tomto rychlém startu se dozvíte, jak nastavit limity četnosti požadavků pomocí brány Spring Cloud v plánu Azure Spring Apps Enterprise.
Omezování rychlosti umožňuje vyhnout se problémům, ke kterým dochází při špičkách provozu. Když nastavíte limity četnosti požadavků, vaše aplikace může odmítnout nadměrné požadavky. Tato konfigurace vám pomůže minimalizovat chyby omezování a přesněji předpovědět propustnost.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Vysvětlení a splnění části Požadavky plánu Enterprise na Azure Marketplace
- Azure CLI verze 2.45.0 nebo vyšší.
- Git
- jq
- Rozšíření plánu Azure Spring Apps Enterprise Pomocí následujícího příkazu odeberte předchozí verze a nainstalujte nejnovější rozšíření plánu Enterprise. Pokud jste rozšíření nainstalovali dříve
spring-cloud
, odinstalujte ho, abyste se vyhnuli neshodám konfigurace a verzí.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Proveďte kroky v části Sestavení a nasazení aplikací do Azure Spring Apps pomocí plánu Enterprise.
Nastavení limitů četnosti požadavků
Brána Spring Cloud zahrnuje filtry tras z open source verze a několik dalších filtrů tras. Jedním z těchtofiltrůch Filtr RateLimit omezuje počet požadavků povolených na trasu během časového intervalu.
Při definování trasy můžete přidat filtr RateLimit tak, že ho zahrnete do seznamu filtrů pro trasu. Filtr přijímá čtyři možnosti:
- Počet žádostí přijatých během okna
- Doba trvání okna. Tato hodnota je ve výchozím nastavení v milisekundách, ale můžete zadat příponu s, m nebo h , která označuje, že hodnota je v sekundách, minutách nebo hodinách.
- (Volitelné) Klíč oddílu uživatele. Můžete také použít omezení rychlosti pro jednotlivé uživatele. To znamená, že různí uživatelé můžou mít povolenou vlastní propustnost na základě identifikátoru nalezeného v požadavku. Určuje, jestli se klíč nachází v deklaraci JWT, nebo v hlavičce HTTP s
claim
syntaxí.header
- (Volitelné) Omezení četnosti můžete omezit podle IP adres, ale ne v kombinaci s omezováním rychlosti na uživatele.
Následující příklad by omezil všechny uživatele na dvě požadavky každých pět sekund na trasu /products
:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Pokud chcete zveřejnit trasu pro různé sady uživatelů, každá trasa identifikovaná vlastní client_id
hlavičkou HTTP, použijte následující definici trasy:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
Když dojde k překročení limitu, odpovědi selžou se stavem 429 Too Many Requests
.
Pomocí následujícího příkazu použijte RateLimit
filtr na trasu /products
:
az spring gateway route-config update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name catalog-routes \
--app-name catalog-service \
--routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service_rate-limit.json
Pomocí následujících příkazů načtěte adresu URL trasy /products
v bráně Spring Cloud:
export GATEWAY_URL=$(az spring gateway show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
echo "https://${GATEWAY_URL}/products"
Proveďte několik požadavků na adresu URL během /products
pětisekundového období, abyste viděli, že žádosti selžou se stavem 429 Too Many Requests
.
Vyčištění prostředků
Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, můžete tyto prostředky ponechat na místě. Pokud už ji nepotřebujete, odstraňte skupinu prostředků, která odstraní prostředky ve skupině prostředků. Pokud chcete odstranit skupinu prostředků pomocí Azure CLI, použijte následující příkazy:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Další kroky
Pokračujte k některému z následujících volitelných rychlých startů: