Aracılığıyla paylaş


Azure API Management'ta hız sınırlama uygulama

Hız sınırlamasını kullanarak, bir kullanıcının veya hizmetin belirli bir zaman diliminde yapabileceği API çağrılarının sayısını sınırlayabilirsiniz. Hız sınırlama, adil kullanım sağlamanıza yardımcı olur ve tek bir kullanıcının veya hizmetin API kaynaklarını tekeline almalarını önler. Azure API Management, API'leriniz için hız sınırlaması uygulamak için kullanışlı bir yol sağlar.

Azure API Management neden kullanılır?

Azure API Management , kuruluşların API'leri dış, iş ortağı ve iç geliştiricilere yayımlamasına yardımcı olan güçlü ve çok yönlü bir bulut hizmetidir. API çağrılarını güvenli hale getirmek, yönetmek ve ölçeklendirmek için araçlar sağlar. Özelliklerinden biri, API'lerinizin sağlığını ve güvenilirliğini korumak için yararlı olan hız sınırlamasını kontrol etmektir.

Azure API Management'ta hız sınırlamayı yapılandırma

Azure API Management, hız sınırlamayı zorlamak için ilkeleri kullanır. Bu ilkeleri farklı kapsamlarda tanımlayabilirsiniz: genel, ürün veya API'ye özgü. Bu esneklik, hız sınırlamayı API'nizin gereksinimlerine ve kullanım desenlerine göre uyarlamanıza olanak tanır.

Hız sınırlamasını uygulamaya başlamadan önce hız sınırlarına karar verin. Ayarladığınız sınırlar API'nizin kapasitesine ve beklediğiniz trafiğe bağlıdır. Ortak sınırlar saniye, dakika veya saat başına çağrı sayısı olarak ayarlanır. Örneğin, kullanıcı başına dakikada 1.000 çağrıya izin verebilirsiniz.

Azure API Management'ta API'nizde hız sınırları tanımlamak için rate-limit veya rate-limit-by-key ilkelerini kullanın. Politika rate-limit , tüm kullanıcılar için bir sınır belirler. İlke rate-limit-by-key , tanımlanan anahtar başına (abonelik veya kullanıcı kimliği gibi) sınırlara izin verir.

Burada, çağrıları dakikada 1.000 ile sınırlayan bir ilke örneği verilmiştir.

<policies>
  <inbound>
    <base />
    <rate-limit calls="1000" renewal-period="60" />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <base />
  </on-error>
</policies>

Belirtilen çağrı sayısını aştığınızda Azure API Management, yanıt üst bilgisi ve ne zaman yeniden deneyebileceğinizi belirten bir iletiyle birlikte 429 Too Many Requests bir retry-after durum kodu gönderir.

HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
    
{
  "statusCode": 429,
  "message": "Rate limit is exceeded. Try again in 60 seconds."
}

Yanıt üst bilgilerinde hız sınırı bilgilerini göster.

Varsayılan olarak, Azure API Management yanıt üst bilgilerinde hız sınırı bilgilerini kullanıma sunmaz. Hız sınırlarının iletilmemesi, uygulamaların sınırı aşmaktan ve kısıtlanmaktan kaçınmasını zorlaştırır. Hız sınırı bilgilerini kullanıma açmak için rate-limit ilkesini remaining-calls-header-name ve total-calls-header-name özellikleriyle genişletin.

<policies>
  <inbound>
    <base />
    <rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <base />
  </on-error>
</policies>

API'nizi şimdi çağırdığınızda, her yanıt ve ratelimit-remaining üst bilgilerini içerirratelimit-limit. Üst bilgiler, API'nin sınırı aşmadan önce kaç çağrı daha işleyebileceğini bildirir.

Özet

Azure API Management'ta hız sınırlaması uygulamak, güçlü ve ölçeklenebilir API'ler oluşturmanıza yardımcı olur. Hız sınırlamayı kullanarak API'nizin kullanıcılarınıza güvenilir ve verimli bir şekilde hizmet etmesini sağlayabilirsiniz. Önemli olan doğru dengeyi bulmaktır. Hız sınırı çok katıysa, kullanılabilirliği engelleyebilirsiniz. Bir hız sınırı çok yumuşaksa, API'nizi bunaltma riskiyle karşı karşıya kalırsınız. Dikkatli planlama ve sürekli izleme ile bu dengeyi elde edebilir ve iyi durumda bir API ortamını koruyabilirsiniz.

Sonraki adım