Uzyskiwanie dostępu do usługi limitów w Node.js

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Wprowadzenie

Z tego artykułu dowiesz się, jak używać apigee-access do uzyskiwania dostępu do usługi limitów Apigee Edge z aplikacji Node.js. Za pomocą apigee-access możesz stosować i resetować wartości limitów.

Przykład

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

Metody


apply

Modyfikuje ustawienia obiektu limitu. Użyj tej metody, aby zwiększyć lub zmniejszyć limit, zmienić przedziały czasu i wprowadzić inne konfiguracje.

Wykorzystanie

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

Przykład

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

Parametry

Metoda apply() przyjmuje 2 parametry: obiekt i funkcję:

(1) Pierwszy parametr to obiekt JSON z tymi polami:

  • identifier (ciąg znaków, wymagany): unikalny identyfikator zasobnika limitu. W praktyce może to być identyfikator aplikacji, adres IP lub nazwa użytkownika.
  • timeUnit (ciąg znaków, wymagany): jak długo zasobnik limitu będzie się kumulować, zanim zostanie zresetowany. Prawidłowe wartości to "minute", "hour", "day", "week" i "month."
  • allow (liczba, wymagany): maksymalna wartość zasobnika limitu. Ta wartość zostanie połączona z bieżącą wartością, aby określić, czy limit został przekroczony.
  • interval (liczba, opcjonalny): w połączeniu z "timeUnit" określa, jak długo będzie trwać limit, zanim zostanie zresetowany. Wartość domyślna to 1. Ustaw większą wartość, aby zezwolić na limity takie jak „2 godziny”, „3 tygodnie” itp.
  • weight (liczba, opcjonalny): wartość, o którą należy zwiększyć limit. Wartość domyślna to 1.

(2) Drugi argument to funkcja wywołania zwrotnego z tymi 2 argumentami:

  • Pierwszy argument to obiekt Error, jeśli nie można zwiększyć limitu , lub undefined, jeśli operacja się powiodła.
  • Drugi argument to obiekt zawierający te pola:
    • used (liczba): bieżąca wartość zasobnika limitu.
    • allowed (liczba): maksymalna wartość zasobnika limitu, po której limit zostanie uznany za przekroczony. Ta sama wartość została przekazana jako „allow” w obiekcie żądania.
    • isAllowed (wartość logiczna): czy w limicie jest jeszcze miejsce w limicie – wartość true, dopóki „used” jest mniejsze lub równe „allowed”.
    • expiryTime (długi): sygnatura czasowa w milisekundach od 1970 r., kiedy zasobnik limitu zostanie zresetowany.
    • timestamp (długi): sygnatura czasowa, kiedy limit został zaktualizowany.

Przykład

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

Aby zresetować limit do zera, wywołaj quota.reset(). Ta metoda przyjmuje 2 parametry:
  • Obiekt JSON z tymi polami:
    • identifier (ciąg znaków, wymagany): unikalny identyfikator zasobnika limitu. W praktyce może to być identyfikator aplikacji, adres IP lub nazwa użytkownika.
    • timeUnit (ciąg znaków, wymagany): jak długo zasobnik limitu będzie się kumulować zanim zostanie zresetowany. Prawidłowe wartości to „minute”, „hour”, „day”, „week” i „month”.
    • interval (liczba, opcjonalny): w połączeniu z "timeUnit" określa jak długo będzie trwać limit, zanim zostanie zresetowany. Wartość domyślna to 1. Ustaw większą wartość, aby zezwolić na czasy resetowania takie jak „2 godziny”, „3 tygodnie” itp.
  • Funkcja wywołania zwrotnego:
    • Jeśli resetowanie się nie powiedzie, funkcja wywołania zwrotnego przyjmuje jako pierwszy parametr obiekt Error.

Zaawansowany przypadek użycia limitu

Podczas tworzenia limitu możesz uwzględnić opcjonalny obiekt „options”. Ten obiekt ma 1 opcjonalny parametr:
  • syncInterval (liczba, opcjonalny): liczba sekund, przez które rozproszona implementacja limitu synchronizuje swój stan w sieci. Wartość domyślna to 10.
Użyj tego parametru, aby zoptymalizować wydajność rozproszonego limitu w sieci. Pamiętaj, że niższe ustawienie pogorszy wydajność i znacznie zwiększy czas oczekiwania operacji „apply”. Ustawienie domyślne 10 sekund jest odpowiednie dla wielu aplikacji. Interwał można ustawić na zero, co oznacza, że stan jest synchronizowany za każdym razem "apply" jest wywoływana. W tym przypadku wydajność będzie znacznie gorsza.