Baca dalam bahasa Inggris

Bagikan melalui


Cara menerapkan pembatasan tarif di Azure API Management

Menggunakan pembatasan tarif, Anda dapat membatasi jumlah panggilan API yang dapat dilakukan pengguna atau layanan dalam jangka waktu tertentu. Pembatasan tarif membantu Anda memastikan penggunaan yang adil dan mencegah satu pengguna atau layanan memonopoli sumber daya API. Azure API Management (APIM) menyediakan cara mudah untuk menerapkan pembatasan tarif untuk API Anda.

Mengapa Azure API Management?

Azure API Management adalah layanan cloud yang kuat dan serbaguna yang membantu organisasi menerbitkan API ke pengembang eksternal, mitra, dan internal. Ini menyediakan alat untuk mengamankan, mengelola, dan menskalakan panggilan API. Salah satu fiturnya adalah mengontrol pembatasan laju yang berguna untuk menjaga kesehatan dan keandalan API Anda.

Mengonfigurasi pembatasan tarif di Azure API Management

Azure API Management menggunakan kebijakan untuk memberlakukan pembatasan tarif. Anda dapat menentukan kebijakan ini pada cakupan yang berbeda: global, produk, atau khusus API. Fleksibilitas ini memungkinkan Anda menyesuaikan pembatasan tarif sesuai dengan persyaratan DAN pola penggunaan API Anda.

Sebelum Anda mulai menerapkan pembatasan tarif, tentukan batas tarif. Batas yang Anda tetapkan bergantung pada kapasitas API dan lalu lintas yang Anda harapkan. Batas umum ditetapkan sebagai sejumlah panggilan per detik, menit, atau jam. Misalnya, Anda mungkin mengizinkan 1000 panggilan per menit per pengguna.

Untuk menentukan batas tarif pada API Anda di Azure API Management, gunakan rate-limit kebijakan atau rate-limit-by-key . Yang pertama menetapkan batas di semua pengguna, sementara yang terakhir memungkinkan batas per kunci yang diidentifikasi (seperti langganan atau ID pengguna).

Berikut adalah contoh kebijakan yang membatasi panggilan hingga 1000 per menit.

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

Ketika Anda melebihi jumlah panggilan yang ditentukan, Azure API Management mengirimkan kode status Permintaan Terlalu Banyak 429, bersama dengan retry-after header respons dan pesan yang menunjukkan kapan Anda dapat mencoba lagi.

text
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."
}

Mengekspos informasi batas tarif pada header respons

Secara default, Azure API Management tidak mengekspos informasi batas tarif pada header respons. Tidak mengkomunikasikan batas laju menyulitkan aplikasi untuk menghindari melebihi batas dan dibatasi. Untuk mengekspos informasi batas tarif, perluas rate-limit kebijakan dengan remaining-calls-header-name properti dan total-calls-header-name .

XML
<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>

Saat Anda memanggil API sekarang, setiap respons menyertakan ratelimit-remaining header dan ratelimit-limit , yang mengomunikasikan berapa banyak panggilan lagi yang dapat ditangani API sebelum melebihi batas.

Ringkasan

Menerapkan pembatasan tarif di Azure API Management membantu Anda membuat API yang kuat dan dapat diskalakan. Dengan menggunakan pembatasan tarif, Anda dapat memastikan bahwa API Anda melayani pengguna Anda dengan andal dan efisien. Ingat, kuncinya adalah menemukan keseimbangan yang tepat - terlalu ketat, dan Anda mungkin menghambat kegunaan; terlalu lenient, dan Anda berisiko membebani API Anda. Dengan perencanaan yang cermat dan pemantauan berkelanjutan, Anda dapat mencapai keseimbangan ini dan mempertahankan lingkungan API yang sehat.

Langkah berikutnya