Kontingentdienst in Node.js aufrufen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Einführung

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

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


Anwenden

Ändert die Einstellungen eines Kontingentobjekts. Verwenden Sie diese Methode, um das Kontingent zu erhöhen oder zu verringern, Zeitintervalle zu ändern und andere Konfigurationen vorzunehmen.

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 ein Nutzername sein.
  • timeUnit (String, erforderlich): Legt fest, wie lange sich der Kontingent-Bucket angesammelt hat, bis er zurückgesetzt wird. Gültige Werte sind „Minute“, „Stunde“, „Tag“, „Woche“ und „Monat“.
  • allow (Zahl, erforderlich): Der Maximalwert für den Kontingent-Bucket. Dieser Wert wird mit dem aktuellen Wert kombiniert, um zurückzugeben, ob das Kontingent erfolgreich war.
  • interval (Zahl, optional): in Kombination mit der "timeUnit", um zu bestimmen, wie lange es dauert, bis das Kontingent zurückgesetzt wird. Der Standardwert ist 1. Legen Sie einen höheren 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 beiden folgenden Argumenten:

  • Das erste Argument ist ein Fehlerobjekt, wenn das Kontingent nicht erhöht werden kann, bzw. nicht definiert, wenn der Vorgang erfolgreich war.
  • Das zweite ist ein Objekt, das die folgenden Felder enthält:
    • used (Zahl): Der aktuelle Wert des Kontingent-Buckets.
    • allowed (Zahl): Der Höchstwert des Kontingent-Buckets, bevor das Kontingent als überschritten gilt. Derselbe Wert wurde als „allow“ im Anfrageobjekt übergeben.
    • isAllowed (boolesch): Wenn das Kontingent noch Platz hat – "true", solange "used" kleiner oder gleich "allowed" ist.
    • expiryTime (lang): Der Zeitstempel in Millisekunden seit Format von 1970, zu dem der Kontingent-Bucket zurückgesetzt wird.
    • timestamp (long): Der Zeitstempel, zu 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'); }
}

Zurücksetzen

Wenn Sie das Kontingent auf null zurücksetzen möchten, rufen Sie „quota.reset()“ auf. Diese Methode verwendet zwei Parameter:
  • Ein JSON-Objekt mit diesen Feldern:
    • identifier (String, erforderlich): Eine eindeutige Kennung des Kontingent-Buckets. In der Praxis kann es sich um eine Anwendungs-ID, eine IP-Adresse oder einen Nutzernamen handeln.
    • timeUnit (String, erforderlich): Legt fest, wie lange sich der Kontingent-Bucket ansammelt, bis er zurückgesetzt wird. Gültige Werte sind „Minute“, „Stunde“, „Tag“, „Woche“ und „Monat“.
    • interval (Zahl, optional): in Kombination mit der "timeUnit", 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ücksetzungszeiten wie „zwei Stunden“, „drei Wochen“ usw. zuzulassen.
  • Eine Callback-Funktion:
    • Der Callback verwendet ein Fehlerobjekt als ersten Parameter, wenn das Zurücksetzen fehlschlägt.

Anwendungsfall für erweiterte Kontingente

Beim Erstellen eines Kontingents können Sie ein optionales Objekt „Optionen“ einfügen. Dieses Objekt hat einen optionalen Parameter:
  • syncInterval (Zahl, optional): Die Anzahl der Sekunden, für die die Implementierung des verteilten Kontingents ihren Status im Netzwerk synchronisiert. Der Standardwert ist 10.
Mit diesem Parameter können Sie die Leistung des über das Netzwerk verteilten Kontingents optimieren. Beachten Sie, dass eine niedrigere Einstellung die Leistung beeinträchtigt und die Latenz beim „Anwenden“-Vorgang erheblich erhöht. Die Standardeinstellung von 10 Sekunden ist für viele Anwendungen eine gute Einstellung. Das Intervall kann auf null gesetzt werden. Das bedeutet, dass der Status bei jedem Aufruf von "apply" synchronisiert wird. Die Leistung ist in diesem Fall viel schlechter.