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


berlaku

Mengubah setelan pada objek Kuota. 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, yaitu objek dan fungsi:

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

  • identifier (string, wajib): ID unik bucket kuota. Dalam praktiknya, ID tersebut dapat 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".
  • allow (angka, wajib): Nilai maksimum untuk bucket kuota. Nilai ini akan digabungkan dengan nilai saat ini untuk menampilkan apakah kuota 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 untuk menaikkan kuota. Jumlah defaultnya adalah 1.

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

  • Argumen pertama adalah objek Error jika kuota tidak dapat ditambah, 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 yang tersisa dalam kuota -- benar selama "used" kurang dari atau sama dengan "allowed".
    • expiryTime (long): Stempel waktu, dalam format milidetik sejak 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 mengambil dua parameter:
  • Objek JSON dengan kolom berikut:
    • identifier (string, wajib): ID unik bucket kuota. Dalam praktiknya, ID tersebut dapat 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): Digabungkan dengan "timeUnit" untuk menentukan berapa lama sebelum kuota direset. Nilai defaultnya adalah 1. Setel ke nilai yang lebih besar untuk mengizinkan waktu reset seperti "dua jam", "tiga minggu", dan sebagainya.
  • Fungsi callback:
    • Callback menggunakan 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 penerapan 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 "apply" secara drastis. Setelan default 10 detik adalah setelan yang baik untuk banyak aplikasi. Interval dapat ditetapkan serendah nol, yang berarti bahwa status disinkronkan setiap kali "apply" dipanggil. Performa akan jauh lebih buruk dalam kasus ini.