Доступ к службе квот в Node.js

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Введение

В этом разделе объясняется, как использовать apigee-access для доступа к службе квот Apigee Edge из приложения Node.js. С помощью apigee-access вы можете применять и сбрасывать значения квот.

Пример

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);
    });

Методы


применять

Изменяет настройки объекта Quota. Используйте этот метод для увеличения или уменьшения квоты, изменения временных интервалов и выполнения других настроек.

Использование

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

Пример

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'); }
                }       

Параметры

Метод apply() принимает два параметра: объект и функцию:

(1) Первый параметр — это объект JSON со следующими полями:

  • идентификатор (обязательное поле): уникальный идентификатор сегмента квоты. На практике это может быть идентификатор приложения, IP-адрес или имя пользователя.
  • timeUnit (строка, обязательная): как долго будет накапливаться сегмент квоты до его сброса. Допустимые значения: «минута», «час», «день», «неделя» и «месяц».
  • разрешить (число, обязательно): максимальное значение сегмента квоты. Это значение будет объединено с текущим значением, чтобы определить, успешно ли выполнена квота.
  • интервал (число, необязательно): в сочетании с «timeUnit», чтобы определить, сколько времени пройдет до сброса квоты. Значение по умолчанию — 1. Установите большее значение, чтобы разрешить такие квоты, как «два часа», «три недели» и т. д.
  • вес (число, необязательно): значение, на которое увеличивается квота. По умолчанию — 1.

(2) Второй аргумент — это функция обратного вызова со следующими двумя аргументами:

  • Первый аргумент — это объект Error, если квота не может быть увеличена, или неопределенный, если операция завершилась успешно.
  • Второй — это объект, который содержит следующие поля:
    • использовано (число): текущее значение сегмента квоты.
    • разрешено (число): максимальное значение сегмента квоты, после которого квота считается превышенной. То же значение было передано как «разрешить» в объекте запроса.
    • isAllowed (логическое значение): если в квоте осталось место — истина, пока «используется» меньше или равно «разрешено».
    • expiryTime (long): временная метка в миллисекундах, начиная с формата 1970 года, когда сегмент квоты будет сброшен.
    • timestamp (long): отметка времени обновления квоты.

Пример

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'); }
}

перезагрузить

Чтобы сбросить квоту до нуля, вызовите quota.reset(). Этот метод принимает два параметра:
  • Объект JSON со следующими полями:
    • идентификатор (обязательное поле): уникальный идентификатор сегмента квоты. На практике это может быть идентификатор приложения, IP-адрес или имя пользователя.
    • timeUnit (строка, обязательная): как долго сегмент квоты будет накапливаться до тех пор, пока он не будет сброшен. Допустимые значения: «минута», «час», «день», «неделя» и «месяц».
    • интервал (число, необязательно): в сочетании с «timeUnit», чтобы определить, сколько времени пройдет до сброса квоты. По умолчанию установлено значение 1. Установите большее значение, чтобы разрешить время сброса, например «два часа», «три недели» и т. д.
  • Функция обратного вызова:
    • Обратный вызов принимает объект Error в качестве первого параметра, если сброс не удался.

Вариант использования расширенной квоты

При создании квоты вы можете включить дополнительный объект «Параметры». Этот объект имеет один необязательный параметр:
  • syncInterval (число, необязательно): количество секунд, в течение которых реализация распределенной квоты синхронизирует свое состояние по сети. По умолчанию — 10.
Используйте этот параметр для оптимизации производительности распределенной квоты по сети. Имейте в виду, что более низкое значение приведет к снижению производительности и значительно увеличит задержку операции «применить». Значение по умолчанию, равное 10 секундам, является подходящим для многих приложений. Интервал может быть установлен равным нулю, что означает, что состояние синхронизируется каждый раз, когда вызывается «применить». В этом случае производительность будет намного хуже.