Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kommentar
Planerna Basic, Standardoch Enterprise gick in i en pensionsperiod den 17 mars 2025. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Den här artikeln gäller för: ❎ Basic/Standard ✅ Enterprise
Den här snabbstarten visar hur du anger hastighetsgränser för begäranden med hjälp av Spring Cloud Gateway i Azure Spring Apps Enterprise-planen.
Med hastighetsbegränsning kan du undvika problem som uppstår med trafiktoppar. När du anger hastighetsbegränsningar för begäranden kan programmet avvisa orimliga begäranden. Den här konfigurationen hjälper dig att minimera begränsningsfel och mer exakt förutsäga dataflödet.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Förstå och uppfylla avsnittet Krav i Enterprise-plan på Azure Marketplace.
- Azure CLI version 2.45.0 eller senare.
- Git.
- jq
-
Azure Spring Apps Enterprise-plantillägget. Använd följande kommando för att ta bort tidigare versioner och installera det senaste Enterprise-plantillägget. Om du tidigare har installerat
spring-cloudtillägget avinstallerar du det för att undvika konfigurations- och versionsmatchningar.az extension add --upgrade --name spring az extension remove --name spring-cloud - Slutför stegen i Skapa och distribuera appar till Azure Spring Apps med hjälp av Enterprise-planen.
Ange hastighetsgränser för begäranden
Spring Cloud Gateway innehåller routningsfilter från open source-versionen och flera routningsfilter. Ett av dessa filter är filtret RateLimit: Limiting user requests (Begränsa användarbegäranden). RateLimit-filtret begränsar antalet begäranden som tillåts per väg under en tidsperiod.
När du definierar en väg kan du lägga till RateLimit-filtret genom att inkludera det i listan med filter för vägen. Filtret accepterar fyra alternativ:
- Antalet begäranden som godkänts under fönstret.
- Varaktigheten för fönstret. Det här värdet är i millisekunder som standard, men du kan ange suffixet
s,mellerhför att ange att värdet är i sekunder, minuter eller timmar. - (Valfritt) En användarpartitionsnyckel. Du kan också tillämpa hastighetsbegränsning per användare. Olika användare kan alltså få sitt eget dataflöde tillåtet baserat på en identifierare som finns i begäran. Ange om nyckeln finns i ett JWT-anspråk eller HTTP-huvud med
claimellerheadersyntax. - (Valfritt) Du kan betygsätta gränsen efter IP-adresser, men inte i kombination med hastighetsbegränsning per användare.
I följande exempel begränsas alla användare till två begäranden var femte sekund till /products vägen:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Om du vill exponera en väg för olika uppsättningar användare, som var och en identifieras av sitt eget client_id HTTP-huvud, använder du följande routningsdefinition:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
När gränsen överskrids misslyckas svar med 429 Too Many Requests status.
Använd följande kommando för att tillämpa filtret på RateLimit/products vägen:
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
Använd följande kommandon för att hämta URL:en för /products vägen i Spring Cloud Gateway:
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"
Gör flera begäranden till URL:en inom en fem sekundersperiod för /products att se begäranden misslyckas med statusen 429 Too Many Requests.
Rensa resurser
Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. Ta bort resursgruppen när den inte längre behövs, vilket tar bort resurserna i resursgruppen. Om du vill ta bort resursgruppen med hjälp av Azure CLI använder du följande kommandon:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nästa steg
Fortsätt till någon av följande valfria snabbstarter: