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

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wprowadzenie

W tym temacie wyjaśniamy, jak używać interfejsu apigee-access do uzyskiwania dostępu do limitu Apigee Edge z aplikacji Node.js. Korzystając z apigee-access, możesz stosować zresetuj 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


zastosuj

Modyfikuje ustawienia obiektu Limit. Za pomocą tej metody możesz zwiększać lub zmniejszać limit, zmieniać przedziały czasowe i wprowadzać 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 identyfikatora zasobnika z limitami. W praktyce może to być identyfikator aplikacji, adres IP nazwa użytkownika.
  • timeUnit (ciąg znaków, wymagany): czas trwania limitu zasobnik będzie gromadził, dopóki nie zostanie zresetowany. Prawidłowe wartości to „minute”, „godzina”, „day”, "week", oraz „miesiąc”.
  • allow (liczba, wymagana): maksymalna wartość w zasobniku limitów. Wartość ta zostanie połączona z bieżącą wartością, aby zwrócić, czy udało się ustawić limit.
  • interval (liczba, opcjonalnie): połączony z parametrem "timeUnit" aby określić, po jakim czasie limit zostanie zresetowany. Wartość domyślna to 1. Ustaw większą aby umożliwić takie limity, jak „dwie godziny”, „trzy tygodnie”, i tak dalej.
  • weight (liczba, opcjonalnie): wartość do Zwiększ limit o. Wartość domyślna to 1.

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

  • Pierwszy argument jest obiektem błędu, jeśli limitu nie można lub nieokreślona, jeśli operacja się udała.
  • Drugi to obiekt zawierający następujące pola:
    • used (liczba): bieżąca wartość parametru zasobnika limitu.
    • allowed (liczba): maksymalna wartość parametru zasobnika, zanim limit zostanie uznany za przekroczony. Ta sama wartość została przekazana jako „zezwól” w obiekcie żądania.
    • isAllowed (wartość logiczna): jeśli zostało wolne miejsce w limicie – true, dopóki ma „used” (używany) ma wartość mniejszą lub równą wartości „dozwolone”.
    • expiryTime (długi): sygnatura czasowa w formacie milisekund od formatu 1970, kiedy zasobnik limitu zostanie zresetowany.
    • timestamp (długi): sygnatura czasowa, 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'); }
}

resetowanie

Aby zresetować limit do zera, wywołaj przydział.reset(). Ta metoda przyjmuje 2 parametry:
  • Obiekt JSON z tymi polami:
    • identifier (ciąg znaków, wymagany): unikalny identyfikator limitu. zasobnika. W praktyce może to być identyfikator aplikacji, adres IP lub nazwa użytkownika.
    • timeUnit (ciąg znaków, wymagany): czas, przez jaki będzie kumulowany zasobnik dopóki nie zostaną zresetowane. Prawidłowe wartości to „minute”, „godzina”, „day”, "week", i „miesiąc”.
    • interval (liczba, opcjonalnie): połączony z parametrem „timeUnit” aby określić Po jakim czasie limit zostanie zresetowany? Wartość domyślna to 1. Aby umożliwić zresetowanie, ustaw większą wartość takich jak „dwie godziny”, „trzy tygodnie”, i tak dalej.
  • Funkcja wywołania zwrotnego:
    • Jeśli reset się nie powiedzie, wywołanie zwrotne przyjmuje obiekt Error jako pierwszy parametr.

Przypadek użycia zaawansowanego limitu

Tworząc limit, możesz uwzględnić opcjonalne „opcje”, obiektu. Ten obiekt ma 1 opcjonalny parametr:
  • syncInterval (liczba, opcjonalnie): liczba sekund, implementacja limitu rozproszonego synchronizuje swój stan w całej sieci. Wartością domyślną jest 10.
Użyj tego parametru, aby zoptymalizować wydajność rozproszonego limitu w sieci. Google Keep pamiętaj, że niższe ustawienie obniża wydajność i znacznie zwiększa opóźnienie „Zastosuj” . Domyślne ustawienie, czyli 10 sekund, jest dobrym ustawieniem dla wielu aplikacji. Przedział czasu może mieć wartość zero, co oznacza, że stan jest synchronizowany za każdym razem. "Zastosuj" . W tym przypadku skuteczność będzie dużo gorsza.