Azure Resource Manager'ın istekleri nasıl kısıtladığını anlama

Bu makalede Azure Resource Manager'ın istekleri nasıl kısıtlediği açıklanmaktadır. Sınıra ulaşmadan önce kalan istek sayısını izleme ve sınıra ulaştığınızda nasıl yanıt vereceğiniz gösterilir.

Azaltma iki düzeyde gerçekleşir. Azure Resource Manager, abonelik ve kiracı isteklerini kısıtlar. İstek, abonelik ve kiracı için azaltma sınırlarının altındaysa Resource Manager, isteği kaynak sağlayıcısına yönlendirir. Kaynak sağlayıcısı, işlemlerine göre uyarlanmış azaltma sınırları uygular.

Aşağıdaki görüntüde kullanıcıdan Azure Resource Manager'a ve kaynak sağlayıcısına istek olarak azaltmanın nasıl uygulandığı gösterilmektedir. Görüntüde, isteklerin başlangıçta isteği gönderen kullanıcının bölgesindeki asıl kimlik ve Azure Resource Manager örneği başına kısıtlanmış olması gösterilmektedir. İstekler saatte bir azaltılır. İstek kaynak sağlayıcısına iletildiğinde, istekler kullanıcının bölgesindeki Azure Resource Manager örneği yerine kaynağın bölgesi başına kısıtlanır. Kaynak sağlayıcısı istekleri de asıl kullanıcı kimliği ve saat başına kısıtlanır.

Kullanıcıdan Azure Resource Manager'a ve kaynak sağlayıcısına istek olarak azaltmanın nasıl uygulandığını gösteren diyagram.

Abonelik ve kiracı sınırları

Abonelik düzeyindeki ve kiracı düzeyindeki her işlem azaltma sınırlarına tabidir. Abonelik istekleri, aboneliğinizdeki kaynak gruplarını alma gibi abonelik kimliğinizi geçirmeyi içeren isteklerdir. Örneğin, adresine https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups?api-version=2022-01-01 istek göndermek abonelik düzeyinde bir işlemdir. Kiracı istekleri geçerli Azure konumlarını alma gibi abonelik kimliğinizi içermez. Örneğin, 'a https://management.azure.com/tenants?api-version=2022-01-01 istek göndermek kiracı düzeyinde bir işlemdir.

Saat başına varsayılan azaltma sınırları aşağıdaki tabloda gösterilmiştir.

Kapsam Operations Sınır
Abonelik okuma 12000
Abonelik silme 15000
Abonelik yazma 1200
Kiracı okuma 12000
Kiracı yazma 1200

Bu sınırların kapsamı, istekleri yapan güvenlik sorumlusu ve abonelik kimliği veya kiracı kimliğine göre belirlenir. İstekleriniz birden fazla güvenlik sorumlusundan geliyorsa, abonelik veya kiracıdaki sınırınız saatte 12.000 ve 1.200’den büyüktür.

Bu sınırlar her Azure Resource Manager örneği için geçerlidir. Her Azure bölgesinde birden çok örnek vardır ve Azure Resource Manager tüm Azure bölgelerine dağıtılır. Bu nedenle uygulamada sınırlar bu sınırlardan daha yüksektir. Bir kullanıcıdan gelen istekler genellikle Azure Resource Manager'ın farklı örnekleri tarafından işlenir.

Kalan istekler yanıt üst bilgisi değerlerinde döndürülür.

Bölgesel azaltma ve belirteç demeti algoritmasına geçiş

2024'den itibaren Microsoft, Azure aboneliklerini yeni bir azaltma mimarisine geçiriyor. Bu değişiklikle yeni azaltma sınırlarıyla karşılaşacaksınız. Yeni azaltma sınırları, Azure Resource Manager örneği yerine bölge başına uygulanır. Yeni mimari, API azaltmayı yönetmek için bir belirteç demeti algoritması kullanır.

Belirteç demeti, her saniye için gönderebileceğiniz en fazla istek sayısını temsil eder. İstek sayısı üst sınırına ulaştığınızda, yeniden doldurma oranı belirteçlerin demette ne kadar hızlı kullanılabilir hale geldiğini belirler.

Bu güncelleştirilmiş sınırlar, kotanızı yenilemenizi ve yönetmenizi kolaylaştırır.

Yeni sınırlar şunlardır:

Kapsam Operations Demet boyutu Saniye başına yeniden doldurma oranı
Abonelik okuma 250 25
Abonelik silme 200 10
Abonelik yazma 200 10
Kiracı okuma 250 25
Kiracı silme 200 10
Kiracı yazma 200 10

Abonelik sınırları abonelik başına, hizmet sorumlusuna ve işlem türüne göre uygulanır. Ayrıca, her işlem türü için tek tek hizmet sorumlusu sınırlarının 15 katıyla eşdeğer olan genel abonelik sınırları da vardır. Genel sınırlar tüm hizmet sorumluları için geçerlidir. Genel, hizmet sorumlusu veya kiracıya özgü sınırlar aşılırsa istekler kısıtlanır.

Ücretsiz veya deneme amaçlı müşteriler için sınırlar daha küçük olabilir.

Örneğin, okuma istekleri için demet boyutunun 250 belirteç olduğunu ve saniyede 25 belirteç yeniden doldurma oranına sahip olduğunuzu varsayalım. Saniye içinde 250 okuma isteği gönderirseniz demet boş olur ve istekleriniz kısıtlanır. Demet en fazla 250 belirteç kapasitesine ulaşana kadar her saniye 25 belirteç kullanılabilir hale gelir. Belirteçleri kullanılabilir hale geldikçe kullanabilirsiniz.

Aboneliğimin yeni azaltma deneyimini kullanıp kullanmadiğini Nasıl yaparım? biliyor musunuz?

Aboneliğiniz yeni azaltma deneyimine geçirildikten sonra yanıt üst bilgisi kalan istekleri saat yerine dakika başına gösterir. Ayrıca, değeriniz Retry-After beş dakika yerine bir dakika veya daha kısa bir dakika gösterir. Daha fazla bilgi için bkz . Hata kodu.

Azaltma neden örnek başına değil de bölge başına olarak değiştiriliyor?

Farklı bölgelerde farklı sayıda Resource Manager örneği olduğundan, örnek başına azaltma tutarsız azaltma performansına neden olur. Bölge başına azaltma, azaltmanın tutarlı ve öngörülebilir olmasını sağlar.

Yeni azaltma deneyimi sınırlarımı nasıl etkiler?

Daha fazla istek gönderebilirsiniz. Yazma istekleri 30 kat artar. Silme istekleri 2,4 kat artar. Okuma istekleri 7,5 kat artar.

Aboneliğimin yeni azaltma deneyimine geçişini engelleyebilir miyim?

Hayır, sonunda tüm abonelikler geçirilecek.

Kaynak sağlayıcısı sınırları

Kaynak sağlayıcıları kendi kısıtlama sınırlarını uygular. Her abonelikte, kaynak sağlayıcısı istekteki kaynağın bölge başına azaltmasını sağlar. Resource Manager Resource Manager örneğine göre kısıtlandığından ve her bölgede birkaç Resource Manager örneği olduğundan, kaynak sağlayıcısı önceki bölümdeki varsayılan sınırlardan daha fazla istek alabilir.

Bu bölümde, yaygın olarak kullanılan bazı kaynak sağlayıcılarının azaltma sınırları açıklanmıştır.

Depolama alanı azaltma

Aşağıdaki sınırlar yalnızca Azure Depolama ile Azure Resource Manager kullanarak yönetim işlemleri gerçekleştirirken geçerlidir. Sınırlar, istekteki kaynağın bölgesi başına uygulanır.

Kaynak Sınır
Depolama hesabı yönetimi işlemleri (okuma) 5 dakikada 800
Depolama hesabı yönetimi işlemleri (yazma) Saniyede 10/saatte 1.200
Depolama hesabı yönetimi işlemleri (listeleme) 5 dakikada 100

Ağ azaltma

Microsoft.Network kaynak sağlayıcısı aşağıdaki kısıtlama sınırlarını uygular:

İşlem Sınır
yazma/silme (PUT) 5 dakikada 1000
okuma (GET) 5 dakikada 10000

Bu genel sınırlara ek olarak, DNS işlemleri için aşağıdaki sınırlar geçerlidir:

DNS Bölgesi İşlemi Sınır (bölge başına)
Oluştur veya Güncelleştir Dakikada 40
Sil Dakikada 40
Al Dakikada 1000
Liste Dakikada 60
Kaynak Grubuna Göre Listele Dakikada 60
Güncelleştir Dakikada 40
DNS Kayıt Kümesi İşlemi Sınır (bölge başına)
Oluştur veya Güncelleştir Dakikada 200
Sil Dakikada 200
Al Dakikada 2000
DNS Bölgesine Göre Listele Dakikada 60
Türe Göre Listele Dakikada 60
Güncelleştir Dakikada 200

İşlem azaltma

İşlem işlemleri için azaltma sınırları hakkında bilgi için bkz . API azaltma hatalarını giderme - İşlem.

Sanal Makine Ölçek Kümesi içindeki sanal makine örneklerini denetlemek için Sanal Makine Ölçek Kümeleri işlemlerini kullanın. Örneğin, sanal makine örneklerinin güç durumunu denetlemek için Sanal Makine Ölçek Kümesi VM'lerini - Parametrelerle listele'yi kullanın. Bu API, istek sayısını azaltır.

Azure Kaynak Grafı azaltma

Azure Kaynak Grafı, isteklerin sayısını işlemleriyle sınırlar. Kalan istekleri ve sınıra ulaşıldığında nasıl yanıt verileceğini belirlemek için bu makaledeki adımlar Kaynak Grafı için de geçerlidir. Ancak Kaynak Grafı kendi sınırını ve sıfırlama oranını ayarlar. Daha fazla bilgi için bkz. Kaynak Grafı azaltma üst bilgileri.

Diğer kaynak sağlayıcıları

Diğer kaynak sağlayıcılarında azaltma hakkında bilgi için bkz:

Hata kodu

Sınıra ulaştığınızda HTTP durum kodu 429 Çok fazla istek alırsınız. Yanıt, bir sonraki isteği göndermeden önce uygulamanızın beklemesi (veya uyku moduna geçmesi) gereken saniye sayısını belirten bir Yeniden Deneme-Sonra değeri içerir. Yeniden deneme değeri tamamlanmadan önce bir istek gönderirseniz, isteğiniz işlenmez ve yeni bir yeniden deneme değeri döndürülür.

Azure SDK kullanıyorsanız SDK'nın otomatik yeniden deneme yapılandırması olabilir. Daha fazla bilgi için bkz . Azure hizmetleri için yeniden deneme kılavuzu.

Bazı kaynak sağlayıcıları geçici bir sorun bildirmek için 429 döndürür. Sorun, isteğinizin doğrudan neden olmadığı bir aşırı yükleme koşulu olabilir. Alternatif olarak, hedef kaynağın veya bağımlı kaynağın durumuyla ilgili geçici bir hatayı temsil edebilir. Örneğin, hedef kaynak başka bir işlem tarafından kilitlendiğinde ağ kaynak sağlayıcısı RetryableErrorDueToAnotherOperation hata koduyla 429 döndürür. Hatanın azaltmadan mı yoksa geçici bir koşuldan mı geldiğini belirlemek için yanıttaki hata ayrıntılarını görüntüleyin.

Kalan istekler

Yanıt üst bilgilerini inceleyerek kalan isteklerin sayısını belirleyebilirsiniz. Okuma istekleri, kalan okuma isteklerinin sayısı için üst bilgide bir değer döndürür. Yazma istekleri, kalan yazma isteklerinin sayısı için bir değer içerir. Aşağıdaki tabloda, bu değerler için inceleyebileceğiniz yanıt üst bilgileri açıklanmaktadır:

Yanıt üst bilgisi Açıklama
x-ms-ratelimit-remaining-subscription-deletes Abonelik kapsamında kalan silme işlemleri. Silme işlemlerinde bu değer döndürülür.
x-ms-ratelimit-remaining-subscription-reads Abonelik kapsamlı okumalar kaldı. Bu değer okuma işlemlerinde döndürülür.
x-ms-ratelimit-remaining-subscription-writes Abonelik kapsamlı yazma işlemleri kaldı. Bu değer yazma işlemlerinde döndürülür.
x-ms-ratelimit-remaining-tenant-reads Kiracı kapsamlı okumalar kaldı
x-ms-ratelimit-remaining-tenant-writes Kiracı kapsamlı yazma işlemleri kaldı
x-ms-ratelimit-remaining-subscription-resource-requests Abonelik kapsamlı kaynak türü istekleri kaldı.

Bu üst bilgi değeri yalnızca bir hizmet varsayılan sınırı geçersiz kılarsa döndürülür. Resource Manager, abonelik okuma veya yazma işlemleri yerine bu değeri ekler.
x-ms-ratelimit-remaining-subscription-resource-entities-read Abonelik kapsamlı kaynak türü koleksiyon istekleri kaldı.

Bu üst bilgi değeri yalnızca bir hizmet varsayılan sınırı geçersiz kılarsa döndürülür. Bu değer, kalan koleksiyon isteklerinin (liste kaynakları) sayısını sağlar.
x-ms-ratelimit-remaining-tenant-resource-requests Kiracı kapsamlı kaynak türü istekleri kaldı.

Bu üst bilgi yalnızca kiracı düzeyindeki istekler için ve yalnızca bir hizmet varsayılan sınırı geçersiz kılarsa eklenir. Resource Manager, kiracı okuma veya yazma işlemleri yerine bu değeri ekler.
x-ms-ratelimit-remaining-tenant-resource-entities-read Kiracı kapsamlı kaynak türü koleksiyon istekleri kaldı.

Bu üst bilgi yalnızca kiracı düzeyindeki istekler için ve yalnızca bir hizmet varsayılan sınırı geçersiz kılarsa eklenir.

Kaynak sağlayıcısı, kalan isteklerle ilgili bilgileri içeren yanıt üst bilgilerini de döndürebilir. İşlem kaynak sağlayıcısı tarafından döndürülen yanıt üst bilgileri hakkında daha fazla bilgi için bkz . Çağrı hızı bilgi yanıt üst bilgileri.

Üst bilgi değerlerini alma

Kodunuzda veya betiğinizde bu üst bilgi değerlerini almak, herhangi bir üst bilgi değerini almaktan farklı değildir.

Örneğin, C# dilinde, aşağıdaki kodla response adlı bir HttpWebResponse nesnesinden üst bilgi değerini alırsınız:

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

PowerShell'de bir Invoke-WebRequest işleminden üst bilgi değerini alırsınız.

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

Tam bir PowerShell örneği için bkz . Abonelik için Resource Manager Sınırlarını Denetleme.

Hata ayıklama için kalan istekleri görmek istiyorsanız PowerShell cmdlet'inizde -Debug parametresini sağlayabilirsiniz.

Get-AzResourceGroup -Debug

Bu, aşağıdaki yanıt değeri de dahil olmak üzere birçok değer döndürür:

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

Status Code:
OK

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

Yazma sınırlarını almak için bir yazma işlemi kullanın:

New-AzResourceGroup -Name myresourcegroup -Location westus -Debug

Bu, aşağıdaki değerler de dahil olmak üzere birçok değer döndürür:

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

Status Code:
Created

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

Azure CLI'da daha ayrıntılı seçeneği kullanarak üst bilgi değerini alırsınız.

az group list --verbose --debug

Bu, aşağıdaki değerler de dahil olmak üzere birçok değer döndürür:

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'

Yazma sınırlarını almak için bir yazma işlemi kullanın:

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

Bu, aşağıdaki değerler de dahil olmak üzere birçok değer döndürür:

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'

Sonraki adımlar