Kontingentdienst in Node.js aufrufen

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

Einführung

In diesem Thema wird erläutert, wie Sie mit dem apigee-access von einer Node.js-Anwendung aus auf den Apigee Edge-Kontingentdienst zugreifen. Mit apigee-access können Sie anwenden und zurücksetzen Kontingentwerte.

Beispiel

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

Methoden


apply

Ändert die Einstellungen für ein Kontingentobjekt. Mit dieser Methode können Sie das Kontingent erhöhen oder verringern, Zeitintervalle ändern und andere Konfigurationen vornehmen.

Nutzung

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

Beispiel

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

Die Methode apply() verwendet zwei Parameter, ein Objekt und eine Funktion:

(1) Der erste Parameter ist ein JSON-Objekt mit den folgenden Feldern:

  • identifier (String, erforderlich): Eine eindeutige Kennung des Kontingent-Buckets. In der Praxis kann dies eine Anwendungs-ID, eine IP-Adresse oder Nutzername sein.
  • timeUnit (String, erforderlich): Wie lange das Kontingent Bucket akkumuliert wird, bis es zurückgesetzt wird. Gültige Werte sind "minute," "hour," "day," "week," und "month."
  • allow (Zahl, erforderlich): Der Maximalwert für das Kontingent-Bucket. Dieser Wert wird mit dem aktuellen Wert kombiniert, um zurückzugeben, ob das Kontingent erfolgreich war.
  • interval (Zahl, optional): Wird mit "timeUnit" kombiniert, um zu bestimmen, wie lange es dauert, bis das Kontingent zurückgesetzt wird. Der Standardwert ist 1. Legen Sie einen größeren Wert fest, um Kontingente wie „zwei Stunden“, „drei Wochen“ usw. zuzulassen.
  • weight (Zahl, optional): Der Wert, um den das Kontingent erhöht werden soll. Der Standardwert ist 1.

(2) Das zweite Argument ist eine Callback-Funktion mit den folgenden zwei Argumenten:

  • Das erste Argument ist ein Fehlerobjekt, wenn das Kontingent nicht erhöht werden kann , oder „undefined“, wenn der Vorgang erfolgreich war.
  • Das zweite Argument ist ein Objekt mit den folgenden Feldern:
    • used (Zahl): Der aktuelle Wert des Kontingent-Buckets.
    • allowed (Zahl): Der Maximalwert des Kontingent-Buckets, bevor das Kontingent als überschritten gilt. Derselbe Wert wurde im Anfrageobjekt als „allow“ übergeben.
    • isAllowed (boolesch): Gibt an, ob noch Platz im Kontingent ist. „true“, solange „used“ kleiner oder gleich „allowed“ ist.
    • expiryTime (Long): Der Zeitstempel im Format „Millisekunden seit 1970“, wann das Kontingent-Bucket zurückgesetzt wird.
    • Zeitstempel (Long): Der Zeitstempel, an dem das Kontingent aktualisiert wurde.

Beispiel

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

Rufen Sie quota.reset() auf, um das Kontingent auf null zurückzusetzen. Diese Methode verwendet zwei Parameter:
  • Ein JSON-Objekt mit den folgenden Feldern:
    • identifier (String, erforderlich): Eine eindeutige Kennung des Kontingent Buckets. In der Praxis kann dies eine Anwendungs-ID, eine IP-Adresse oder ein Nutzername sein.
    • timeUnit (String, erforderlich): Wie lange das Kontingent-Bucket akkumuliert wird, bis es zurückgesetzt wird. Gültige Werte sind „minute“, „hour“, „day“, „week“ und „month“.
    • interval (Zahl, optional): Wird mit "timeUnit" kombiniert, um zu bestimmen wie lange es dauert, bis das Kontingent zurückgesetzt wird. Der Standardwert ist 1. Legen Sie einen größeren Wert fest, um Rücksetzzeiten wie „zwei Stunden“, „drei Wochen“ usw. zuzulassen.
  • Eine Callback-Funktion:
    • Die Callback-Funktion verwendet ein Fehlerobjekt als ersten Parameter, wenn das Zurücksetzen fehlschlägt.

Erweiterter Anwendungsfall für Kontingente

Beim Erstellen eines Kontingents können Sie ein optionales „options“-Objekt einfügen. Dieses Objekt hat einen optionalen Parameter:
  • syncInterval (Zahl, optional): Die Anzahl der Sekunden, in denen die verteilte Kontingentimplementierung ihren Status im Netzwerk synchronisiert. Der Standardwert ist 10.
Mit diesem Parameter können Sie die Leistung des verteilten Kontingents im Netzwerk optimieren. Beachten Sie, dass eine niedrigere Einstellung die Leistung beeinträchtigt und die Latenz des Vorgangs „apply“ erheblich erhöht. Die Standardeinstellung von 10 Sekunden ist für viele Anwendungen geeignet. Das Intervall kann auf null gesetzt werden. Das bedeutet, dass der Status jedes Mal synchronisiert wird, wenn „apply“ aufgerufen wird. In diesem Fall ist die Leistung viel schlechter.