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.
Den här artikeln beskriver hur Azure Resource Manager begränsar begäranden. Den visar hur du spårar antalet begäranden som återstår innan du når gränsen och hur du svarar när du når gränsen.
Algoritm för regional begränsning och token bucket-algoritm
Microsoft har migrerat Azure-prenumerationer till en uppdaterad begränsningsarkitektur från och med 2024. Begränsningsgränser tillämpas nu per region i stället för per instans av Azure Resource Manager. Den här nya arkitekturen använder en token-bucket-algoritm för att hantera begränsning av API-anrop.
Token-bucketen representerar det maximala antalet begäranden som du kan skicka för varje sekund. När du når det maximala antalet begäranden avgör påfyllningsfrekvensen hur snabbt token blir tillgängliga i bucketen.
Dessa uppdaterade gränser gör det enklare för dig att uppdatera och hantera din kvot.
De uppdaterade gränserna är:
Omfång | Operativa åtgärder | Bucketstorlek | Påfyllningshastighet per sekund |
---|---|---|---|
Prenumeration | läsningar | 250 | 25 |
Prenumeration | borttagningar | 200 | 10 |
Prenumeration | skrivningar | 200 | 10 |
Klientorganisation | läsningar | 250 | 25 |
Klientorganisation | borttagningar | 200 | 10 |
Klientorganisation | skrivningar | 200 | 10 |
Prenumerationsgränserna gäller per prenumeration, per tjänstens huvudnamn och per åtgärdstyp. Det finns också globala prenumerationsgränser som motsvarar 15 gånger de enskilda gränserna för tjänstens huvudnamn för varje åtgärdstyp. De globala gränserna gäller för alla tjänsthuvudnamn. Begäranden begränsas om de globala gränserna, tjänstens huvudnamn eller klientorganisationsspecifika gränser överskrids.
Gränserna kan vara mindre för kostnadsfria kunder eller utvärderingskunder.
Anta till exempel att du har en bucketstorlek på 250 token för läsbegäranden och påfyllningshastighet på 25 token per sekund. Om du skickar 250 läsbegäranden på en sekund är bucketen tom och dina begäranden begränsas. Varje sekund blir 25 token tillgängliga tills bucketen når sin maximala kapacitet på 250 token. Du kan använda token när de blir tillgängliga.
Att läsa mått med hjälp av API:et */providers/microsoft.insights/metrics
bidrar avsevärt till den övergripande Azure Resource Manager-trafiken och är en vanlig orsak till prenumerationsbegränsningshändelser. Om du använder det här API:et kraftigt rekommenderar vi att du växlar till API:et getBatch
. Du kan köra frågor mot flera resurser i en enda REST-begäran, vilket förbättrar prestandan och minskar begränsningen. Mer information om hur du konverterar dina åtgärder finns i Migrera från mått-API:et till getBatch-API:et.
Hur visar jag mina begränsade begäranden?
Information om hur du visar dina begränsade begäranden och andra Resource Manager-mått finns i Komma åt Azure Resource Manager-mått.
Varför begränsas det per region i stället för per instans?
Eftersom olika regioner har ett annat antal Resource Manager-instanser orsakar begränsning per instans inkonsekventa begränsningsprestanda. Begränsning per region gör begränsningen konsekvent och förutsägbar.
Hur påverkar den uppdaterade begränsningsupplevelsen mina gränser?
Du kan skicka fler begäranden. Skrivbegäranden ökar med 30 gånger. Borttagningsbegäranden ökar med 2,4 gånger. Läsbegäranden ökar med 7,5 gånger.
Begränsning av bakgrundsjobb
Bakgrundsjobb i Azure Resource Manager (ARM) är automatiserade uppgifter som körs i bakgrunden för att stödja åtgärder som resursdistributioner, diagnostik och systemunderhåll. De här jobben är viktiga för bearbetning av användarbegäranden och för att säkerställa tjänstfunktioner. För att upprätthålla plattformsstabilitet och tillförlitlighet använder ARM bakgrundsjobbsbegränsning för att hantera belastningen från dessa uppgifter.
Du kan identifiera när strypning av bakgrundsjobb inträffar genom att du får följande felmeddelande:
The request for subscription '{0}' could not be processed due to an excessive volume of traffic. Please try again later.
Kunder kan uppleva minskad tjänsteprestanda på grund av överbelastning i bakgrundsjobb, vilket kan utlösas av frekventa operationer eller aktivitet på systemnivå. Även om kunderna inte har direkt kontroll över skapandet eller utförandet av dessa jobb, är det viktigt att vara medveten om potentiell begränsning av kapaciteten.
Begränsning för icke-offentliga moln
Begränsning sker på två nivåer. Azure Resource Manager begränsar begäranden för prenumerationen och klientorganisationen. Om begäran är under gränsvärdena för prenumerationen och klientorganisationen dirigerar Resource Manager begäran till resursprovidern. Resursprovidern tillämpar gränsvärden som är skräddarsydda för dess åtgärder.
Begäranden begränsas ursprungligen per huvudnamns-ID och per Azure Resource Manager-instans i regionen där användaren skickar begäran. Begäranden till Azure Resource Manager-instansen i regionen begränsas också per huvudkontots användar-ID och per timme. När begäran vidarebefordras till resursprovidern begränsas begäranden per region för resursen i stället för per Azure Resource Manager-instans i användarens region.
Anmärkning
Gränserna för en resursprovider kan skilja sig från gränserna för Azure Resource Manager-instansen i användarens region.
Följande bild visar hur begränsning tillämpas när en begäran går från användaren till Azure Resource Manager och resursprovidern.
Prenumerations- och klientbegränsningar
Varje åtgärd på prenumerationsnivå och klientnivå omfattas av begränsningsgränser. Prenumerationsbegäranden är sådana som innebär att du skickar ditt prenumerations-ID, till exempel att hämta resursgrupperna i din prenumeration. Att till exempel skicka en begäran till https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups?api-version=2022-01-01
är en åtgärd på prenumerationsnivå. Klientbegäranden inkluderar inte ditt prenumerations-ID, till exempel att hämta giltiga Azure-platser. Att till exempel skicka en begäran till https://management.azure.com/tenants?api-version=2022-01-01
är en åtgärd på klientorganisationsnivå.
I följande tabell visas standardgränser per timme.
Omfång | Operativa åtgärder | Gräns |
---|---|---|
Prenumeration | läsningar | 12 000 |
Prenumeration | borttagningar | 15 000 |
Prenumeration | skrivningar | 1 200 |
Klientorganisation | läsningar | 12 000 |
Klientorganisation | skrivningar | 1 200 |
De här gränserna gäller det säkerhetsobjekt (användare eller program) som skickar förfrågningarna och prenumerationens eller klientorganisationens ID. Om dina förfrågningar kommer från fler än ett säkerhetsobjekt är begränsningen för prenumerationen eller klientorganisationen högre än 12 000 respektive 1 200 per timme.
Dessa gränser gäller för varje Azure Resource Manager-instans. Det finns flera instanser i varje Azure-region och Azure Resource Manager distribueras till alla Azure-regioner. Så i praktiken är gränserna högre än dessa gränser. Olika instanser av Azure Resource Manager hanterar vanligtvis användarens begäranden.
Återstående begäranden returneras i svarshuvudvärdena.
Begränsningar för resursprovider
Resursprovidrar tillämpar sina egna begränsningar. I varje prenumeration begränsar resursprovidern resursens region i begäran. Eftersom Resource Manager begränsar efter instans av Resource Manager och det finns flera instanser av Resource Manager i varje region kan resursprovidern ta emot fler begäranden än standardgränserna i föregående avsnitt.
I det här avsnittet beskrivs begränsningarna för vissa resursprovidrar som används ofta.
Lagringsbegränsning
Följande gränser gäller endast när du utför hanteringsåtgärder med hjälp av Azure Resource Manager med Azure Storage och lagringsresursprovidern. Gränserna gäller per prenumeration per region för resursen i begäran.
Resurs | Gräns |
---|---|
Hanteringsåtgärder för lagringskonto (läsning) | 800 per 5 minuter |
Hanteringsåtgärder för lagringskonto (skrivning) | 10 per sekund / 1 200 per timme |
Hanteringsåtgärder för lagringskonto (lista) | 100 per 5 minuter |
Nätverksbegränsning
Microsoft.Network-resursprovidern tillämpar följande begränsningar:
Åtgärd | Gräns |
---|---|
skrivning/borttagning (PUT) | 1 000 per 5 minuter |
läsning (GET) | 10 000 per 5 minuter |
Utöver dessa allmänna gränser kan du läsa användningsgränserna för Azure DNS.
Beräkningsbegränsning
Microsoft Compute implementerar begränsning för att ge en optimal upplevelse för användare av vm- och vm-skalningsuppsättningar. Begränsningar för beräkning innehåller omfattande information om begränsningsprinciper och begränsningar för virtuella datorer, VM-skalningsuppsättningar och virtuella skalningsuppsättningar.
Azure Resource Graph-begränsning
Azure Resource Graph begränsar antalet begäranden till dess åtgärder. Stegen i den här artikeln för att fastställa återstående begäranden och hur du svarar när gränsen nås gäller även för Resource Graph. Resource Graph anger dock sin egen gräns och återställningshastighet. Mer information finns i Resource Graph-begränsningshuvuden.
Azure Resource Graph har också en lösning som möjliggör ytterligare en mekanism för att hämta resursdata när du har nått begränsningsgränser för resursprovidern genom att sömlöst integrera med befintliga AZURE Resource Manager-kontrollplans-GET- och LIST-API:er– som erbjuder en kraftfull och skalbar lösning för åtkomst till resursdata. Mer information finns i ARG GET/LIST API.
Andra resursprovidrar
Information om begränsning i andra resursprovidrar finns i:
Felkod
När du når gränsen får du HTTP-statuskoden 429 För många begäranden. Svaret innehåller värdet Försök efter igen, som anger hur många sekunder programmet ska vänta innan nästa begäran skickas. Om du skickar en begäran innan återförsöksvärdet förflutit bearbetas inte din begäran och ett nytt återförsöksvärde returneras.
Om du använder en Azure SDK kan SDK:et ha en konfiguration för automatiskt återförsök. Mer information finns i Vägledning för återförsök för Azure-tjänster.
Vissa resursprovidrar returnerar 429 för att rapportera ett tillfälligt problem. Problemet kan vara ett överlagringsvillkor som din begäran inte orsakade. Det kan också vara ett tillfälligt fel om målresursens eller den beroende resursens tillstånd. Nätverksresursprovidern returnerar till exempel 429 med felkoden RetryableErrorDueToAnotherOperation när en annan åtgärd låser målresursen. Om du vill ta reda på om felet kommer från begränsning eller ett tillfälligt villkor kan du visa felinformationen i svaret.
Återstående begäranden
Du kan fastställa antalet återstående begäranden genom att undersöka svarshuvuden. Läsbegäranden returnerar ett värde i rubriken för antalet återstående läsbegäranden. Skrivbegäranden innehåller ett värde för antalet återstående skrivbegäranden. I följande tabell beskrivs de svarshuvuden som du kan undersöka för dessa värden:
Svarsrubrik | beskrivning |
---|---|
x-ms-ratelimit-remaining-subscription-deletes | Återstående borttagna prenumerationsomfång. Det här värdet returneras vid borttagningsåtgärder. |
x-ms-ratelimit-remaining-subscription-reads | Återstående läsningar med prenumerationsomfång. Det här värdet returneras vid läsåtgärder. |
x-ms-ratelimit-remaining-subscription-writes | Återstående skrivningar med prenumerationsomfång. Det här värdet returneras vid skrivåtgärder. |
x-ms-hastighetsbegränsning-återstående-hyresgäst-läsningar | Återstående läsningar med klientomfattning. |
x-ms-ratelimit-remaining-tenant-writes | Återstående skrivningar med klientomfattning. |
Gräns för återstående resursförfrågningar för prenumeration | Återstående begäranden om resurstypsomfång för prenumerationen. Det här huvudvärdet returneras endast om en tjänst åsidosätter standardgränsen. Resource Manager lägger till det här värdet i stället för prenumerationens läsningar eller skrivningar. |
In this context, I conclude that the original translation should remain unchanged unless specific contextual adjustments are requested, as this aligns with technical text conventions. | Återstående begäranden om resurstypsinsamling med prenumerationsomfång. Det här huvudvärdet returneras endast om en tjänst åsidosätter standardgränsen. Det här värdet innehåller antalet återstående samlingsbegäranden (listresurser). |
x-ms-begränsa-återstående-hyresgäst-resurs-förfrågningar | Återstående begäranden om klientomfångsbegränsade resurstyper. Det här huvudet läggs till för begäranden på klientnivå och endast om en tjänst åsidosätter standardgränsen. Resource Manager lägger till det här värdet i stället för klientorganisationens läsningar eller skrivningar. |
x-ms-ratelimit-remaining-tenant-resource-entities-read | Kvarstående begäranden om resurstypsinsamling för klientorganisation. Det här huvudet läggs bara till för begäranden på klientorganisationsnivå och endast om en tjänst åsidosätter standardgränsen. |
Resursprovidern kan också returnera svarshuvuden med information om återstående begäranden. Information om svarshuvuden som returneras av beräkningsresursprovidern finns i Meddelandehuvuden för samtalsfrekvensinformation.
Hämtar huvudvärdena
Att hämta dessa rubrikvärden i koden eller skriptet skiljer sig inte från att hämta ett huvudvärde.
I C# hämtar du till exempel rubrikvärdet från ett HttpWebResponse-objekt med namnet response med följande kod:
response.Headers.GetValues("x-ms-ratelimit-remaining-subscription-reads").GetValue(0)
I PowerShell hämtar du rubrikvärdet från en Invoke-WebRequest
åtgärd.
$r = Invoke-WebRequest -Uri https://management.azure.com/subscriptions/{guid}/resourcegroups?api-version=2016-09-01 -Method GET -Headers $authHeaders
$r.Headers["x-ms-ratelimit-remaining-subscription-reads"]
Ett fullständigt PowerShell-exempel finns i Kontrollera ARM-gränser för en viss prenumeration.
Om du vill se återstående begäranden om felsökning anger du parametern -Debug på din PowerShell-cmdlet .
Get-AzResourceGroup -Debug
Svaret innehåller många värden, inklusive följande svarsvärde:
DEBUG: ============================ HTTP RESPONSE ============================
Status Code:
OK
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999
Använd en skrivåtgärd för att hämta skrivgränser:
New-AzResourceGroup -Name myresourcegroup -Location westus -Debug
Svaret innehåller många värden, inklusive följande värden:
DEBUG: ============================ HTTP RESPONSE ============================
Status Code:
Created
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-writes: 1199
I Azure CLI använder du det mer utförliga alternativet för att hämta rubrikvärdet:
az group list --verbose --debug
Kommandot returnerar många värden, inklusive följande värden:
msrest.http_logger : Response status: 200
msrest.http_logger : Response headers:
msrest.http_logger : 'Cache-Control': 'no-cache'
msrest.http_logger : 'Pragma': 'no-cache'
msrest.http_logger : 'Content-Type': 'application/json; charset=utf-8'
msrest.http_logger : 'Content-Encoding': 'gzip'
msrest.http_logger : 'Expires': '-1'
msrest.http_logger : 'Vary': 'Accept-Encoding'
msrest.http_logger : 'x-ms-ratelimit-remaining-subscription-reads': '11998'
Använd en skrivåtgärd för att hämta skrivgränser:
az group create -n myresourcegroup --location westus --verbose --debug
Åtgärden returnerar många värden, inklusive följande värden:
msrest.http_logger : Response status: 201
msrest.http_logger : Response headers:
msrest.http_logger : 'Cache-Control': 'no-cache'
msrest.http_logger : 'Pragma': 'no-cache'
msrest.http_logger : 'Content-Length': '163'
msrest.http_logger : 'Content-Type': 'application/json; charset=utf-8'
msrest.http_logger : 'Expires': '-1'
msrest.http_logger : 'x-ms-ratelimit-remaining-subscription-writes': '1199'
Nästa steg
- Mer information om gränser och kvoter finns i avsnittet om begränsningar och kvoter för Azure-prenumerationer och -tjänster.
- Mer information om hur du hanterar asynkrona REST-förfrågningar finns i Spåra asynkrona Azure-åtgärder.