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 kuota Apigee Edge dari aplikasi Node.js. Dengan apigee-access, Anda dapat mengajukan permohonan dan reset 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() mengambil dua parameter, objek dan fungsi:

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

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

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

  • Argumen pertama adalah objek Error jika kuota tidak bisa bertambah, atau tidak terdefinisi jika operasi berhasil.
  • Yang kedua adalah objek yang berisi kolom-kolom berikut:
    • used (angka): Nilai saat ini bucket kuota.
    • diizinkan (angka): Nilai maksimum bucket kuota sebelum kuota dianggap terlampaui. Nilai yang sama diteruskan sebagai "izinkan" dalam objek permintaan.
    • isAllowed (boolean): Jika masih ada ruang yang tersisa dalam kuota -- benar selama "used" kurang dari atau sama dengan "diizinkan".
    • expiryTime (panjang): Stempel waktu, dalam milidetik sejak format tahun 1970, saat bucket kuota akan direset.
    • timestamp (panjang): Stempel waktu saat kuota telah 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 diisi): ID unik kuota direktori VM dengan bucket. Dalam praktiknya, hal ini dapat berupa ID aplikasi, alamat IP, atau nama pengguna.
    • timeUnit (string, wajib diisi): Berapa lama bucket kuota akan terakumulasi sampai jika perangkat disetel ulang. Nilai yang valid adalah "menit," "jam", "hari", "minggu", dan "bulan".
    • interval (angka, opsional): Dikombinasikan dengan "timeUnit" untuk menentukan berapa lama sebelum kuota direset. Nilai defaultnya adalah 1. Setel ke nilai yang lebih besar untuk mengizinkan 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 "opsi" 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. Pertahankan ingat bahwa setelan yang lebih rendah akan menurunkan performa dan "terapkan" operasi. Setelan default 10 detik adalah setelan yang baik untuk banyak aplikasi. Interval dapat disetel serendah nol, yang artinya status disinkronkan setiap kali "terapkan" dipanggil. Jika ini terjadi, performa akan jauh lebih buruk.