Megosztás a következőn keresztül:


Ismerje meg, hogyan szabályozza az Azure Resource Manager a kéréseket

Ez a cikk azt ismerteti, hogyan szabályozza az Azure Resource Manager a kéréseket. Bemutatja, hogyan követheti nyomon a korlát elérése előtt maradó kérések számát, és hogyan válaszolhat a korlát elérésekor.

Regionális szabályozás és token vödör algoritmus

A Microsoft 2024-től egy frissített korlátozási architektúrára migrálta az Azure-előfizetéseket. Mostantól a sebességkorlátozások régiónként alkalmazódnak, nem pedig az Azure Resource Manager-példányok szerint. Ez az új architektúra jogkivonat-gyűjtő algoritmust használ az API-szabályozás kezeléséhez.

A jogkivonat gyűjtője az egyes másodpercenként küldhető kérelmek maximális számát jelöli. Amikor eléri a kérelmek maximális számát, az újratöltési sebesség határozza meg, hogy milyen gyorsan válnak elérhetővé a jogkivonatok a gyűjtőben.

Ezek a frissített korlátok megkönnyítik a kvóta frissítését és kezelését.

A frissített korlátok a következők:

Hatókör Üzemeltetés Gyűjtő mérete Feltöltési sebesség másodpercenként
Előfizetés olvasások 250 25
Előfizetés törlések 200 10
Előfizetés írások 200 10
Bérlő olvasások 250 25
Bérlő törlések 200 10
Bérlő írások 200 10

Az előfizetési korlátok előfizetésenként, szolgáltatásnévenként és művelettípusonként érvényesek. Vannak olyan globális előfizetési korlátok is, amelyek az egyes művelettípusokhoz tartozó egyedi szolgáltatásnévkorlát 15-szörösével egyenértékűek. A globális korlátok az összes szolgáltatásnévre vonatkoznak. A kérelmek szabályozása akkor történik, ha túllépik a globális, a szolgáltatásnév vagy a bérlőspecifikus korlátokat.

A korlátozások kisebbek lehetnek az ingyenes vagy próbaverziós ügyfelek számára.

Tegyük fel például, hogy 250 token méretű gyűjtővel rendelkezik az olvasási kérelmekhez, és másodpercenként 25 tokent tölt újra. Ha 250 olvasási kérést küld egy másodperc alatt, a gyűjtő üres, és a kérések szabályozva vannak. Másodpercenként 25 jogkivonat válik elérhetővé, amíg a gyűjtő el nem éri a 250 token maximális kapacitását. A jogkivonatokat az elérhetővé válásukkor használhatja.

Az API-val végzett metrikák olvasása jelentősen hozzájárul az */providers/microsoft.insights/metrics Azure Resource Manager általános forgalmához, és gyakori oka az előfizetés szabályozásának. Ha erősen használja ezt az API-t, javasoljuk, hogy váltson az getBatch API-ra. Egyetlen REST-kérelemben több erőforrást is lekérdezhet, ami javítja a teljesítményt, és csökkenti a szabályozást. A műveletek konvertálásáról további információt a Metrikák API-ról a getBatch API-ra történő migrálásról talál.

Ezek a korlátok és architektúra 2026 végéig az összes szuverén felhőre is érvényesek lesznek.

Hogyan tekinthetem meg a korlátozott kérelmeket?

A szabályozott kérelmek és más Resource Manager-metrikák megtekintéséhez tekintse meg az Azure Resource Manager-metrikák elérését ismertető témakört.

Miért régiónként, nem pedig példányonként korlátozunk?

Mivel a különböző régiókban eltérő számú Resource Manager-példány van, a példányonkénti szabályozás inkonzisztens szabályozást eredményez. A szabályozás régiónként konzisztenssé és kiszámíthatóvá teszi a szabályozást.

Hogyan befolyásolja a frissített teljesítményszabályozási élmény a korlátaimat?

További kéréseket is küldhet. Az írási kérelmek száma 30-szorosára nő. A törlési kérelmek száma 2,4-szeresére nő. Az olvasási kérelmek száma 7,5-szeresére nő.

Háttérfeladat korlátozása

Az Azure Resource Manager (ARM) háttérfeladatai olyan automatizált feladatok, amelyek a háttérben futnak az olyan műveletek támogatásához, mint az erőforrástelepítések, a diagnosztika és a rendszerkarbantartás. Ezek a feladatok elengedhetetlenek a felhasználói kérések feldolgozásához és a szolgáltatás működésének biztosításához. A platform stabilitásának és megbízhatóságának fenntartása érdekében az ARM háttérfeladat-szabályozást alkalmaz a feladatok terhelésének kezeléséhez.

Amikor a háttérfeladatok korlátozása történik, az alábbi hibaüzenet jelenhet meg:

The request for subscription '{0}' could not be processed due to an excessive volume of traffic. Please try again later.

Az ügyfelek korlátozást tapasztalhatnak a túlzott háttérben futó feladatok miatt, amelyeket gyakori műveletek vagy rendszerszintű tevékenységek válthatnak ki. Bár az ügyfelek nem irányítják közvetlenül ezeknek a feladatoknak a létrehozását vagy végrehajtását, fontos a lehetséges szabályozások megismerése.

Korlátozás szuverén felhők esetén

A szabályozás két szinten történik. Az Azure Resource Manager az előfizetésre és a bérlőre vonatkozóan szabályozza a kéréseket. Ha a kérés az előfizetésre és a bérlőre vonatkozó szabályozási korlátok alatt marad, a Resource Manager az erőforrás-szolgáltatóhoz irányítja a kérést. Az erőforrás-szolgáltató a műveleteihez igazított szabályozási korlátokat alkalmaz.

A kérések kezdetben egyszerű azonosítónként és Azure Resource Manager-példányonként vannak szabályozva a kérést küldő felhasználó régiójában. A régióban található Azure Resource Manager-példányhoz érkező kérelmeket korlátozzák az elsődleges felhasználói azonosítók és óránkénti kérések alapján. Amikor a kérést az erőforrás-szolgáltatónak továbbítja, a kérések szabályozása az erőforrás régiója szerint történik, nem pedig a felhasználó régiójában lévő Azure Resource Manager-példányonként.

Megjegyzés:

Az erőforrás-szolgáltató korlátai eltérhetnek a felhasználó régiójában lévő Azure Resource Manager-példány korlátaitól.

Az alábbi képen látható, hogy a rendszer hogyan alkalmazza a szabályozást, amikor egy kérés a felhasználótól az Azure Resource Managerhez és az erőforrás-szolgáltatóhoz kerül.

Az a diagram, amely bemutatja, hogy a rendszer hogyan alkalmazza a szabályozást a kérések során, a felhasználótól az Azure Resource Managerhez és az erőforrás-szolgáltatóhoz kerül.

Előfizetési és bérlői korlátok

Minden előfizetési és bérlői szintű műveletre szabályozási korlátozások vonatkoznak. Az előfizetési kérelmek olyan kérések, amelyek magukban foglalják az előfizetés azonosítójának átadását, például az előfizetésben lévő erőforráscsoportok lekérését. A kérés https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups?api-version=2022-01-01 küldése például előfizetési szintű művelet. A bérlői kérelmek nem tartalmazzák az előfizetés azonosítóját, például az érvényes Azure-helyek lekérését. A kérések https://management.azure.com/tenants?api-version=2022-01-01 elküldése például bérlőszintű művelet.

Az alapértelmezett óránkénti szabályozási korlátok az alábbi táblázatban vannak feltüntetve.

Hatókör Üzemeltetés Korlát
Előfizetés olvasások 12 000
Előfizetés törlések 15 000
Előfizetés írások 1200
Bérlő olvasások 12 000
Bérlő írások 1200

Ezeknek a korlátoknak a hatóköre a kéréseket intéző rendszerbiztonsági tag (felhasználó vagy alkalmazás) és az előfizetés azonosítója vagy a bérlő azonosítója. Ha a kérések több rendszerbiztonsági tagból érkeznek, akkor az előfizetésben vagy a bérlőben a korlát nagyobb, mint óránként 12 000 olvasás és 1200 írás.

Ezek a korlátozások minden Azure Resource Manager-példányra vonatkoznak. Minden Azure-régióban több példány van, és az Azure Resource Manager minden Azure-régióban üzembe van helyezve. A gyakorlatban tehát a korlátok magasabbak, mint ezek a korlátok. Az Azure Resource Manager különböző példányai általában a felhasználó kéréseit kezelik.

A fennmaradó kéréseket a rendszer a válaszfejléc értékeiben adja vissza.

Erőforrás-szolgáltatói korlátok

Az erőforrás-szolgáltatók a saját szabályozási korlátaikat alkalmazzák. Az egyes előfizetésekben az erőforrás-szolgáltató szabályozza a kérelemben szereplő erőforrás régióit. Mivel a Resource Manager a Resource Manager példánya szerint szabályoz, és az egyes régiókban több Resource Manager-példány is található, előfordulhat, hogy az erőforrás-szolgáltató több kérést kap, mint az előző szakaszban megadott alapértelmezett korlátok.

Ez a szakasz néhány széles körben használt erőforrás-szolgáltató szabályozási korlátait ismerteti.

Tárterület-szabályozás

Az alábbi korlátozások csak akkor érvényesek, ha az Azure Resource Manager és az Azure Storage erőforrás-szolgáltató használatával hajt végre felügyeleti műveleteket. A korlátozások az erőforrás régiónkénti előfizetésére vonatkoznak a kérelemben.

Erőforrás Korlát
Tárfiókkezelési műveletek (olvasás) 5 percenként 800
Tárfiókkezelési műveletek (írás) 10 másodpercenként / 1200 óránként
Tárfiókkezelési műveletek (listázás) 5 percenként 100

Hálózati szabályozás

A Microsoft.Network erőforrás-szolgáltató az alábbi szabályozási korlátokat alkalmazza:

Művelet Korlát
írás / törlés (PUT) 5 percenként 1000
olvasás (GET) 5 percenként 10000

Ezen általános korlátok mellett tekintse meg az Azure DNS használati korlátait is.

Számítási szabályozás

A Microsoft Compute szabályozást implementál, hogy optimális élményt nyújtson a virtuális gépek és a virtuálisgép-méretezési csoportok felhasználói számára. A számítási szabályozási korlátok átfogó információkat nyújtanak a virtuális gépek, a virtuálisgép-méretezési csoportok és a méretezési csoportok virtuális gépeinek szabályozási szabályzatairól és korlátairól.

Azure Resource Graph-szabályozás

Az Azure Resource Graph korlátozza a műveletekre irányuló kérések számát. A cikkben szereplő lépések a fennmaradó kérések meghatározására és a korlát elérésekor történő válaszadásra is vonatkoznak a Resource Graph-ra. A Resource Graph azonban beállítja a saját korlátját és alaphelyzetbe állítási sebességét. További információ: Resource Graph-szabályozási fejlécek.

Az Azure Resource Graph egy olyan megoldással is rendelkezik, amely lehetővé teszi az erőforrás-adatok lekérésének további mechanizmusát, amikor elérte az erőforrás-szolgáltató szabályozási korlátait azáltal, hogy zökkenőmentesen integrálható a meglévő Azure Resource Manager vezérlősík GET és LIST API-kkal – hatékony, méretezhető megoldást kínálva az erőforrás-adatokhoz való hozzáféréshez. További információ: ARG GET/LIST API.

Egyéb erőforrás-szolgáltatók

További információ a más erőforrás-szolgáltatók szabályozásáról:

Hibakód

Ha eléri a korlátot, a HTTP-állapotkód 429 Túl sok kérést kap. A válasz tartalmaz egy újrapróbálkozási értéket , amely meghatározza, hogy az alkalmazás hány másodpercet várjon a következő kérés elküldése előtt. Ha az újrapróbálkozás értéke előtt küld egy kérést, a rendszer nem dolgozza fel a kérést, és új újrapróbálkozást ad vissza.

Ha Azure SDK-t használ, előfordulhat, hogy az SDK automatikus újrapróbálkozott konfigurációval rendelkezik. További információ: Újrapróbálkozás az Azure-szolgáltatásokhoz.

Egyes erőforrás-szolgáltatók 429-et adnak vissza, hogy átmeneti problémát jelentsenek. A probléma lehet egy túlterhelési feltétel, amelyet a kérés nem okozott. Vagy átmeneti hiba lehet a célerőforrás vagy a függő erőforrás állapotával kapcsolatban. A hálózati erőforrás-szolgáltató például a 429-et adja vissza a RetryableErrorDueToAnotherOperation hibakóddal, amikor egy másik művelet zárolja a célerőforrást. Annak megállapításához, hogy a hiba szabályozásból vagy átmeneti állapotból származik-e, tekintse meg a hiba részleteit a válaszban.

Fennmaradó kérések

A fennmaradó kérések számát a válaszfejlécek vizsgálatával határozhatja meg. Az olvasási kérelmek a fejlécben a fennmaradó olvasási kérelmek számának értékét adja vissza. Az írási kérelmek tartalmazzák a fennmaradó írási kérelmek számának értékét. Az alábbi táblázat azokat a válaszfejléceket ismerteti, amelyeket ezekre az értékekre megvizsgálhat:

Válaszfejléc Leírás
x-ms-korlát-fennmaradó-előfizetés-törlések Az előfizetés hatóköre a fennmaradó törléseket törli. Ez az érték a törlési műveletek során lesz visszaadva.
x-ms-ratelimit-remaining-subscription-reads (az előfizetési olvasások fennmaradó sebességkorlátozási mértéke) Az előfizetés hatókörébe tartozó olvasások megmaradnak. Ez az érték olvasási műveletek esetén lesz visszaadva.
x-ms-ratelimit-remaining-subscription-writes (az előfizetési írások fennmaradó kvótája) Az előfizetés hatókörébe tartozó írások megmaradnak. Ez az érték írási műveletek esetén lesz visszaadva.
x-ms-ratelimit-remaining-tenant-reads A bérlő hatókörében lévő olvasási adatok megmaradnak.
x-ms-korlátozási-kvóta-maradék-bérlő-írások A bérlő hatókörében lévő írások megmaradnak.
x-ms-korlát-fennmaradó-előfizetés-erőforrás-kérések Fennmaradó előfizetés-hatókörű erőforrástípus-kérések.

Ez a fejlécérték csak akkor lesz visszaadva, ha egy szolgáltatás felülírja az alapértelmezett korlátot. A Resource Manager ezt az értéket adja hozzá az előfizetés olvasása vagy írása helyett.
x-ms-korlátozási-arány-hátralévő-előfizetés-erőforrás-objektumok-olvasás Fennmaradó előfizetés-hatókörű erőforrástípus-gyűjtési kérelmek.

Ez a fejlécérték csak akkor lesz visszaadva, ha egy szolgáltatás felülírja az alapértelmezett korlátot. Ez az érték a fennmaradó gyűjteménykérések számát adja meg (erőforrások listázása).
x-ms-korlát-maradék-bérlő-erőforrás-kérések Fennmaradó bérlői hatókörű erőforrástípus-kérelmek.

Ez a fejléc bérlői szintű kérésekhez lesz hozzáadva, és csak akkor, ha egy szolgáltatás felülírja az alapértelmezett korlátot. A Resource Manager ezt az értéket adja hozzá a bérlő olvasása vagy írása helyett.
x-ms-maradék-korlátozás-bérlő-erőforrás-entitások-olvasás A bérlő hatókörébe tartozó erőforrástípus-gyűjtési kérelmek továbbra is megmaradnak.

Ez a fejléc csak bérlői szintű kérésekhez lesz hozzáadva, és csak akkor, ha egy szolgáltatás felülírja az alapértelmezett korlátot.

Az erőforrás-szolgáltató válaszfejléceket is visszaadhat a fennmaradó kérelmekkel kapcsolatos információkkal. A számítási erőforrás-szolgáltató által visszaadott válaszfejlécekről további információt a Hívássebesség információs válaszfejlécei című témakörben talál.

A fejlécértékek beolvasása

Ezeknek a fejlécértékeknek a beolvasása a kódban vagy a szkriptben nem különbözik a fejlécértékek beolvasásánál.

A C#-ban például lekéri a fejléc értékét egy Válasz nevű HttpWebResponse objektumból a következő kóddal:

response.Headers.GetValues("x-ms-ratelimit-remaining-subscription-reads").GetValue(0)

A PowerShellben kérje le a fejléc értékét egy Invoke-WebRequest műveletből.

$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"]

Egy teljes PowerShell-példaért tekintse meg egy adott előfizetés ARM-korlátainak ellenőrzését.

A további hibakeresési kérelmek megtekintéséhez adja meg a -Debug paramétert a PowerShell-parancsmagon .

Get-AzResourceGroup -Debug

A válasz számos értéket tartalmaz, beleértve a következő válaszértéket:

DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
Pragma                        : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999

Írási korlátok lekéréséhez használjon írási műveletet:

New-AzResourceGroup -Name myresourcegroup -Location westus -Debug

A válasz számos értéket tartalmaz, köztük a következő értékeket:

DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
Created

Headers:
Pragma                        : no-cache
x-ms-ratelimit-remaining-subscription-writes: 1199

Az Azure CLI-ben a részletesebb beállítással lekérheti a fejléc értékét:

az group list --verbose --debug

A parancs számos értéket ad vissza, beleértve a következő értékeket:

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'

Írási korlátok lekéréséhez használjon írási műveletet:

az group create -n myresourcegroup --location westus --verbose --debug

A művelet számos értéket ad vissza, beleértve a következő értékeket:

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'

Következő lépések