Mengakses layanan kuota di Node.js

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Pengantar

Topik ini menjelaskan cara menggunakan apigee-access untuk mengakses layanan kuota Apigee Edge dari aplikasi Node.js. Dengan akses apigee, Anda dapat menerapkan dan mereset nilai kuota.

Contoh

var apigee = require('apigee-access');
var quota = apigee.getQuota();
quota.apply({ identifier: 'Foo', allow: 10, timeUnit: 'hour' },
    function(err, result) {
         console.log('Quota applied: %j', result);
    });

Metode


terapkan

Memodifikasi setelan pada objek Quota. Gunakan metode ini untuk menambah atau mengurangi kuota, mengubah interval waktu, dan membuat konfigurasi lainnya.

Penggunaan

var apigee = require('apigee-access');
var quota = apigee.getQuota();
quota.apply({parameters}, callback);

Contoh

var apigee = require('apigee-access');
var quota = apigee.getQuota();

        // Apply a quota of 100 requests per hour
        quota.apply({
         identifier: 'Foo',
         timeUnit: 'hour',
         allow: 100
        }, quotaResult);
                
                function quotaResult(err, r) {
                 if (err) { console.error('Quota failed'); }
                }       

Parameter

Metode apply() mengambil dua parameter, sebuah objek dan sebuah fungsi:

(1) Parameter pertama adalah objek JSON dengan kolom berikut:

  • identifier (string, diperlukan): ID unik bucket kuota. Dalam praktiknya, hal tersebut dapat berupa ID aplikasi, alamat IP, atau nama pengguna.
  • timeUnit (string, diperlukan): Durasi akumulasi bucket kuota hingga direset. Nilai yang valid adalah "menit", "jam", "hari", "minggu", dan "bulan".
  • allow (angka, wajib): Nilai maksimum untuk bucket kuota. Nilai ini akan digabungkan dengan nilai saat ini untuk menampilkan apakah kuota telah berhasil.
  • interval (angka, opsional): Dikombinasikan dengan "timeUnit" untuk menentukan durasi sebelum kuota direset. Nilai defaultnya adalah 1. Tetapkan ke nilai yang lebih besar untuk mengizinkan kuota seperti "dua jam", "tiga minggu", dan seterusnya.
  • weight (angka, opsional): Nilai yang akan ditambahi kuota. Jumlah defaultnya adalah 1.

(2) Argumen kedua adalah fungsi callback dengan kedua argumen ini:

  • Argumen pertama adalah objek Error jika kuota tidak dapat bertambah, atau tidak ditentukan jika operasi berhasil.
  • Yang kedua adalah objek yang berisi kolom berikut:
    • used (angka): Nilai bucket kuota saat ini.
    • permissions (angka): Nilai maksimum bucket kuota sebelum kuota dianggap terlampaui. Nilai yang sama diteruskan sebagai "izinkan" dalam objek permintaan.
    • isAllowed (boolean): Jika ada ruang tersisa dalam kuota -- true selama "used" kurang dari atau sama dengan "diizinkan".
    • expiryTime (long): Stempel waktu, dalam milidetik sejak format tahun 1970, saat bucket kuota akan direset.
    • Timestamp (long): Stempel waktu saat kuota diperbarui.

Contoh

var apigee = require('apigee-access');
var quota = apigee.getQuota();
 

// Apply a quota of 100 requests per hour
quota.apply({
  identifier: 'Foo',
  timeUnit: 'hour',
  allow: 100
}, quotaResult);
 

// Apply a quota of 500 requests per five minutes
quota.apply({
  identifier: 'Bar',
  timeUnit: 'minute',
  interval: 5,
  allow: 500
}, quotaResult);


// Increment the quota by a value of 10
quota.apply({
  identifier: 'Foo',
  timeUnit: 'hour',
  allow: 100,
  weight: 10
}, quotaResult);


function quotaResult(err, r) {
  if (err) { console.error('Quota failed'); }
}

reset

Untuk mereset kuota ke nol, panggil quota.reset(). Metode ini menggunakan dua parameter:
  • Objek JSON dengan kolom berikut:
    • identifier (string, diperlukan): ID unik bucket kuota. Dalam praktiknya, hal itu bisa berupa ID aplikasi, alamat IP, atau nama pengguna.
    • timeUnit (string, wajib): Berapa lama bucket kuota akan terakumulasi hingga direset. Nilai yang valid adalah "menit", "jam", "hari", "minggu", dan "bulan".
    • interval (angka, opsional): Dikombinasikan dengan "timeUnit" untuk menentukan durasi sebelum kuota direset. Nilai defaultnya adalah 1. Setel ke nilai yang lebih besar untuk memungkinkan waktu reset, misalnya "dua jam", "tiga minggu", dan seterusnya.
  • Fungsi callback:
    • Callback mengambil objek Error sebagai parameter pertama jika reset gagal.

Kasus penggunaan Kuota Lanjutan

Saat membuat kuota, Anda dapat menyertakan objek "options" opsional. Objek ini memiliki satu parameter opsional:
  • syncInterval (angka, opsional): Jumlah detik saat implementasi kuota terdistribusi menyinkronkan statusnya di seluruh jaringan. Defaultnya adalah 10.
Gunakan parameter ini untuk mengoptimalkan performa kuota yang didistribusikan di seluruh jaringan. Perlu diingat bahwa setelan yang lebih rendah akan menurunkan performa dan meningkatkan latensi operasi "terapkan". Setelan default 10 detik adalah setelan yang baik untuk banyak aplikasi. Interval dapat disetel serendah nol yang berarti bahwa status disinkronkan setiap kali "apply" dipanggil. Performanya akan jauh lebih buruk dalam kasus ini.