Accéder au service de quotas dans Node.js

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Introduction

Cette rubrique explique comment utiliser apigee-access pour accéder au quota Apigee Edge à partir d'une application Node.js. Avec apigee-access, vous pouvez appliquer et réinitialiser les valeurs de quota.

Exemple

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

Méthodes


appliquer

Modifie les paramètres d'un objet Quota. Utilisez cette méthode pour incrémenter ou décrémenter le quota, modifier les intervalles de temps et effectuer d'autres configurations.

Utilisation

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

Exemple

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

Paramètres

La méthode apply() utilise deux paramètres, un objet et une fonction:

(1) Le premier paramètre est un objet JSON comportant les champs suivants:

  • identifier (chaîne, obligatoire): valeur unique identifiant du bucket de quota. En pratique, il peut s'agir d'un ID application, d'une adresse IP ou nom d'utilisateur.
  • timeUnit (chaîne, obligatoire): durée du quota. s'accumulera jusqu'à sa réinitialisation. Les valeurs valides sont "minute" « heure », « jour », « semaine », et « mois ».
  • allow (nombre, obligatoire): valeur maximale de dans le bucket de quota. Cette valeur sera combinée à la valeur actuelle pour indiquer si le a atteint son objectif.
  • interval (nombre, facultatif): combiné avec les "timeUnit" pour déterminer le délai de réinitialisation du quota. La valeur par défaut est 1. Définir sur une valeur plus élevée pour autoriser des quotas comme "two hours", « trois semaines », et ainsi de suite.
  • weight (nombre, facultatif): valeur d'incrémenter le quota. La valeur par défaut est 1.

(2) Le deuxième argument est une fonction de rappel arguments:

  • Le premier argument est un objet Error si le quota ne peut pas être incrémentée ou non définie si l'opération a réussi.
  • Le second est un objet qui contient les champs suivants: <ph type="x-smartling-placeholder">
      </ph>
    • used (nombre): valeur actuelle de l'attribut bucket de quota.
    • allowed (nombre): valeur maximale de l'attribut bucket de quota avant que le quota soit considéré comme dépassé. La même valeur a été transmise "autoriser" dans l'objet "request".
    • isAllowed (booléen): s'il reste de l'espace. dans le quota -- true tant que "used" (utilisé) est inférieur ou égal à "autorisé".
    • expiryTime (long): code temporel, au format millisecondes depuis le format 1970, date à laquelle le bucket de quota sera réinitialisé.
    • timestamp (long): horodatage auquel le quota a été mis à jour.

Exemple

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

réinitialiser

Pour remettre le quota à zéro, appelez quota.reset(). Cette méthode nécessite deux paramètres:
<ph type="x-smartling-placeholder">
    </ph>
  • Un objet JSON contenant les champs suivants: <ph type="x-smartling-placeholder">
      </ph>
    • identifier (chaîne, obligatoire): identifiant unique du quota. bucket. En pratique, il peut s'agir d'un ID application, d'une adresse IP ou d'un nom d'utilisateur.
    • timeUnit (chaîne, obligatoire): durée d'accumulation du bucket de quota jusqu'à ce qu'elle soit réinitialisée. Les valeurs valides sont "minute" « heure », « jour », « semaine », et « mois ».
    • interval (nombre, facultatif): combiné avec "timeUnit" pour déterminer le délai de réinitialisation du quota. La valeur par défaut est 1. Définissez une valeur plus élevée pour permettre la réinitialisation. des heures comme « deux heures », « trois semaines », et ainsi de suite.
  • Une fonction de rappel: <ph type="x-smartling-placeholder">
      </ph>
    • Le rappel utilise un objet Error (erreur) comme premier paramètre si la réinitialisation échoue.

Cas d'utilisation de quotas avancés

Lors de la création d'un quota, vous pouvez inclure une option "options" facultative . Cet objet comporte un paramètre facultatif: <ph type="x-smartling-placeholder">
    </ph>
  • syncInterval (nombre, facultatif): nombre de secondes pendant lesquelles la l'implémentation de quotas distribués synchronise son état sur le réseau. La valeur par défaut est 10.
Utilisez ce paramètre pour optimiser les performances du quota distribué sur le réseau. Conserver plus la latence est faible, plus les performances sont réduites et la latence du réseau la commande « apply » opération. La valeur par défaut de 10 secondes convient pour de nombreuses applications. L'intervalle peut être défini sur zéro, ce qui signifie que l'état est synchronisé à chaque fois "appliquer" est appelé. Dans ce cas, les performances seront bien inférieures.