Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Temel v2 | Standart | Standart v2 | Premium | Premium v2
İlke, rate-limit-by-key çağrı oranını belirli bir zaman aralığı için belirtilen bir numarayla sınırlayarak API kullanımındaki ani artışları anahtar temelinde engeller. Anahtarın rastgele bir dize değeri olabilir ve genellikle ilke ifadesi kullanılarak sağlanır. Hangi isteklerin sınıra doğru sayılması gerektiğini belirtmek için isteğe bağlı artış koşulu eklenebilir. Bu çağrı oranı aşıldığında, arayan bir 429 Too Many Requests yanıt durum kodu alır.
Hız sınırları ile kotalar arasındaki farkı anlamak için bkz. Hız sınırları ve kotalar.
Dikkat
Azaltma mimarisinin dağıtılmış yapısı nedeniyle hız sınırlaması hiçbir zaman tam olarak doğru değildir. yapılandırılmış izin verilen istek sayısı ile gerçek sayı arasındaki fark, istek hacmine ve hızına, arka uç gecikme süresine ve diğer faktörlere bağlı olarak değişir.
Not
İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. Portal, bu ilkeyi yapılandırmanıza yardımcı olmak için kılavuzlu, form tabanlı bir düzenleyici sağlar. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.
İlke bildirimi
<rate-limit-by-key calls="number"
renewal-period="seconds"
increment-condition="condition"
increment-count="number"
counter-key="key value"
retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-calls-header-name="header name"
remaining-calls-variable-name="policy expression variable name"
total-calls-header-name="header name"/>
Özellikler
| Öznitelik | Açıklama | Zorunlu | Varsayılan |
|---|---|---|---|
| Aramalar | içinde belirtilen renewal-periodzaman aralığı boyunca anahtar değeri için izin verilen toplam çağrı sayısı üst sınırı. İlke ifadelerine izin verilir. |
Evet | Yok |
| counter-key | Hız sınırı ilkesi için kullanılacak anahtar. Her anahtar değeri için, ilkenin yapılandırıldığı tüm kapsamlar için tek bir sayaç kullanılır. İlke ifadelerine izin verilir. | Evet | Yok |
| artım koşulu | İsteğin hıza (true ) göre sayılıp sayılmaması gerektiğini belirten Boole ifadesi. İlke ifadelerine izin verilir, ancak değerlendirme ve sayaç artırma eylemlerini giden işlem hattının sonuna erteler. |
Hayır | Yok |
| artımlı sayı | Sayacın istek başına artırıldığı sayı. İlke ifadelerine izin verilir, ancak değerlendirmeyi ve sayaç artışını giden işlem hattının sonuna erteler. | Hayır | 1 |
| yenileme süresi | İzin verilen istek sayısının içinde callsbelirtilen değeri aşmaması gereken kayan pencerenin saniye cinsinden uzunluğu. İzin verilen maksimum değer: 300 saniye. İlke ifadelerine izin verilir. |
Evet | Yok |
| retry-after-header-name | Anahtar değeri için belirtilen çağrı hızı aşıldıktan sonra saniye cinsinden değeri önerilen yeniden deneme aralığı olan özel yanıt üst bilgisinin adı. İlke ifadelerine izin verilmez. | Hayır | Retry-After |
| retry-after-variable-name | Anahtar değeri için belirtilen çağrı hızı aşıldıktan sonra önerilen yeniden deneme aralığını saniyeler içinde depolayan bir ilke ifadesi değişkeninin adı. İlke ifadelerine izin verilmez. | Hayır | Yok |
| remaining-calls-header-name | Her ilke yürütmeden sonraki değeri, içinde belirtilen zaman aralığında anahtar değeri için izin verilen kalan çağrı sayısı olan yanıt üst bilgisinin renewal-periodadıdır. İlke ifadelerine izin verilmez. |
Hayır | Yok |
| remaining-calls-variable-name | Her ilke yürütmeden sonra anahtar değeri için izin verilen çağrıların sayısını içinde belirtilen zaman aralığında depolayan bir ilke ifade değişkeninin renewal-periodadı. İlke ifadelerine izin verilmez. |
Hayır | Yok |
| total-calls-header-name | değeri içinde callsbelirtilen değer olan bir yanıt üst bilgisinin adı. İlke ifadelerine izin verilmez. |
Hayır | Yok |
Kullanım
- İlke bölümleri: gelen
- İlke kapsamları: genel, çalışma alanı, ürün, API, işlem
- Ağ geçitleri: klasik, v2, şirket içinde barındırılan, çalışma alanı
Kullanım notları
- API Management, ilkede belirttiğiniz her
counter-keydeğer için tek bir sayaç kullanır. Sayaç, ilkenin bu anahtar değeriyle yapılandırıldığı tüm kapsamlarda güncelleştirilir. Farklı kapsamlarda (örneğin, belirli bir API veya ürün) ayrı sayaçlar yapılandırmak istiyorsanız, farklı kapsamlarda farklı anahtar değerleri belirtin. Örneğin, kapsamı ifadenin değerine tanımlayan bir dize ekleyin. - v2 katmanları, klasik katmanlardaki kaydırma pencere algoritmasından farklı olan oran sınırlandırması için token bucket algoritması kullanır. Bu uygulama farkı nedeniyle, bu politikayı v2 katmanlarında birden fazla kapsamda ve aynı
counter-keydeğeri kullanırken yapılandırdığınızda, vecallsdeğerlerinin politikanın tüm örneklerinde tutarlı olduğundan eminrenewal-periodolun. Tutarsız değerler öngörülemez davranışlara yol açabilir. - Şirket içinde barındırılan bir ağ geçidindeki hız sınırı sayısı, yerel olarak (küme düğümleri arasındaki ağ geçidi örnekleri arasında), örneğin Kubernetes için Helm grafiği dağıtımı veya Azure portalı dağıtım şablonları kullanılarak eşitlenecek şekilde yapılandırılabilir. Ancak hız sınırı sayıları, buluttaki yönetilen ağ geçidi de dahil olmak üzere API Management örneğinde yapılandırılan diğer ağ geçidi kaynaklarıyla eşitlenmez. Daha fazla bilgi edinin
- Bu ilke, çalışma alanı ağ geçitleri ve çok bölgeli dağıtımdaki bölgesel ağ geçitleri dahil olmak üzere uygulandığı her ağ geçidinde çağrıları bağımsız olarak izler. Çağrı verilerini tüm örnek genelinde toplamaz.
- İfadeler kullanılarak tanımlandığında veya
increment-conditiontanımlandığındaincrement-count, yanıta dayalı ilke ifadelerine izin vermek için hız sınırı sayacının değerlendirmesi ve artışı giden işlem hattının sonuna ertelenir. Sınır aşıldı koşulu bu durumda aynı anda değerlendirilmez ve bir sonraki gelen çağrıda değerlendirilir. Bu durum kodunun normalden 1 çağrı sonra döndürüldüğü429 Too Many Requestsdurumlara yol açar.
Örnek
Aşağıdaki örnekte, 60 saniye başına 10 çağrının hız sınırı arayan IP adresi tarafından anahtarlanır. Her ilke yürütmeden sonra, zaman aralığında bu çağıranın IP adresi için izin verilen kalan çağrılar değişkeninde remainingCallsPerIPdepolanır.
<policies>
<inbound>
<base />
<rate-limit-by-key calls="10"
renewal-period="60"
increment-condition="@(context.Response.StatusCode == 200)"
counter-key="@(context.Request.IpAddress)"
remaining-calls-variable-name="remainingCallsPerIP"/>
</inbound>
<outbound>
<base />
</outbound>
</policies>
Bu ilke hakkında daha fazla bilgi ve örnek için bkz . Azure API Management ile gelişmiş istek azaltma.
İlgili ilkeler
İlgili içerik
İlkelerle çalışma hakkında daha fazla bilgi için bkz:
- Öğretici: API'nizi dönüştürme ve koruma
- İlke deyimlerinin ve ayarlarının tam listesi için ilke başvurusu
- İlke ifadeleri
- İlkeleri ayarlama veya düzenleme
- İlke yapılandırmalarını yeniden kullanma
- İlke kod parçacıkları deposu
- İlke oyun alanı deposu
- Azure API Management ilke araç seti
- Politikalar oluşturmak, açıklamak ve sorun gidermek için Copilot yardımı alın