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.
Poznámka:
Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring 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
- 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ěchto filtrů je RateLimit: Filtr omezující uživatelské požadavky. 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,mnebohurčit, ž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
claimsyntaxí.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 během pěti sekund několik požadavků na adresu URL /products, abyste viděli, že požadavky selžou s chybovým stavem 429 Too Many Requests.
Vyčištění prostředků
Pokud chcete pokračovat v práci s dalšími rychlými úvody a kurzy, můžete tyto prostředky ponechat beze změny. Pokud ji již nepotřebujete, odstraňte skupinu prostředků, čímž odstraníte všechny prostředky v ní obsažené. 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ů: