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 apigee-access, 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

Mengubah 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() menggunakan dua parameter, objek dan fungsi:

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

  • identifier (string, wajib): ID unik bucket kuota. Dalam praktiknya, ID ini dapat berupa ID aplikasi, alamat IP, atau nama pengguna.
  • timeUnit (string, wajib diisi): Berapa lama bucket kuota akan terakumulasi 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 berapa lama sebelum kuota direset. Nilai defaultnya adalah 1. Tetapkan ke nilai yang lebih besar untuk mengizinkan kuota seperti "dua jam", "tiga minggu", dan sebagainya.
  • weight (angka, opsional): Nilai yang akan digunakan untuk menambah kuota. Jumlah defaultnya adalah 1.

(2) Argumen kedua adalah fungsi callback dengan dua 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.
    • allowed (angka): Nilai maksimum bucket kuota sebelum kuota dianggap terlampaui. Nilai yang sama diteruskan sebagai "allow" dalam objek permintaan.
    • isAllowed (boolean): Jika masih ada ruang dalam kuota, nilainya benar selama "used" kurang dari atau sama dengan "allowed".
    • expiryTime (long): Stempel waktu, dalam milidetik sejak format 1970, saat bucket kuota akan direset.
    • stempel waktu (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 kuota.reset(). Metode ini menggunakan dua parameter:
  • Objek JSON dengan kolom berikut:
    • identifier (string, wajib): ID unik bucket kuota. Dalam praktiknya, ID ini dapat berupa ID aplikasi, alamat IP, atau nama pengguna.
    • timeUnit (string, wajib diisi): 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 waktu sebelum kuota direset. Nilai defaultnya adalah 1. Setel ke nilai yang lebih besar untuk mengizinkan waktu reset seperti "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 yang diperlukan penerapan kuota terdistribusi untuk 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 "penerapan" secara drastis. Setelan default 10 detik adalah setelan yang baik untuk banyak aplikasi. Interval dapat disetel serendah nol, yang berarti status disinkronkan setiap kali "apply" dipanggil. Dalam hal ini, performa akan jauh lebih buruk.