Accéder au service de quotas dans Node.js

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Introduction

Cet article explique comment utiliser apigee-access pour accéder au service de 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


s'appliquent

Modifie les paramètres d'un objet Quota. Utilisez cette méthode pour incrémenter ou diminuer 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() accepte deux paramètres : un objet et une fonction :

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

  • identifier (chaîne, obligatoire): identifiant unique du bucket de quota. En pratique, il peut s'agir d'un ID d'application, d'une adresse IP ou d'un nom d'utilisateur.
  • timeUnit (chaîne, obligatoire): durée pendant laquelle le quota du bucket s'accumule jusqu'à sa réinitialisation. Les valeurs valides sont "minute", "heure", "jour", "semaine" et "mois".
  • allow (nombre, obligatoire): valeur maximale du bucket de quota. Cette valeur sera combinée à la valeur actuelle pour indiquer si le quota a réussi.
  • interval (nombre, facultatif): combiné avec "timeUnit" pour déterminer le délai avant le réinitialisation du quota. La valeur par défaut est 1. Définissez cette valeur sur une valeur plus élevée pour autoriser des quotas tels que "deux heures", "trois semaines", etc.
  • weight (nombre, facultatif): valeur à ajouter au quota. La valeur par défaut est 1.

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

  • Le premier argument est un objet Error si le quota ne peut pas être incrémenté, ou non défini si l'opération a réussi.
  • Le second est un objet contenant les champs suivants :
    • used (nombre): valeur actuelle du bucket de quota.
    • allowed (nombre): valeur maximale du bucket de quota avant que le quota ne soit considéré comme dépassé. La même valeur a été transmise sous la forme "allow" dans l'objet de requête.
    • isAllowed (booléen): si de la place reste dans le quota, la valeur est "true" tant que "used" est inférieur ou égal à "allowed".
    • expiryTime (long): code temporel, en millisecondes depuis 1970, à partir duquel le quota sera réinitialisé.
    • timestamp (long): code temporel 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 réinitialiser le quota à zéro, appelez quota.reset(). Cette méthode accepte deux paramètres:
  • Un objet JSON contenant les champs suivants:
    • identifier (chaîne, obligatoire): identifiant unique du bucket de quota. 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 pendant laquelle le quota du bucket s'accumulera s'il est réinitialisé. Les valeurs valides sont "minute", "heure", "jour", "semaine" et "mois".
    • interval (nombre, facultatif): combiné avec le paramètre "timeUnit" pour déterminer le délai de réinitialisation du quota. La valeur par défaut est 1. Définissez cette valeur sur une valeur plus élevée pour autoriser des délais de réinitialisation tels que "deux heures", "trois semaines", etc.
  • Une fonction de rappel:
    • Le rappel prend un objet Error comme premier paramètre si la réinitialisation échoue.

Cas d'utilisation des quotas avancés

Lorsque vous créez un quota, vous pouvez inclure un objet "options" facultatif. Cet objet comporte un paramètre facultatif :
  • syncInterval (nombre, facultatif): nombre de secondes pendant lesquelles la mise en œuvre du quota distribué 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. N'oubliez pas qu'une valeur inférieure dégrade les performances et augmente considérablement la latence de l'opération "apply". 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 que "apply" est appelé. Les performances seront beaucoup plus mauvaises dans ce cas.