Accede al servicio de cuotas en Node.js

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Introducción

En este tema, se explica cómo usar apigee-access para acceder al servicio de cuotas de Apigee Edge desde una aplicación de Node.js. Con apigee-access, puedes aplicar y restablecer los valores de cuota.

Ejemplo

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étodos


aplicar

Modifica la configuración de un objeto Quota. Usa este método para aumentar o disminuir la cuota, cambiar los intervalos de tiempo y crear otras opciones de configuración.

Uso

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

Ejemplo

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

Parámetros

El método apply() toma dos parámetros, un objeto y una función:

(1) El primer parámetro es un objeto JSON con estos campos:

  • Identificador (string, obligatoria): Un identificador único del bucket de cuota. En la práctica, podría ser un ID de aplicación, una dirección IP o un nombre de usuario.
  • timeUnit (string, obligatoria): Durante cuánto tiempo acumulará el bucket de cuota hasta que se restablezca. Los valores válidos son “minuto”, “hora”, “día”, “semana” y “mes”.
  • allow (número, obligatorio): Es el valor máximo del bucket de cuota. Este valor se combinará con el valor actual para mostrar si la cuota se completó correctamente.
  • interval (número, opcional): Se combina con "timeUnit" para determinar cuánto tiempo antes de que se restablezca la cuota. El valor predeterminado es 1. Establece un valor mayor para permitir cuotas, como "dos horas", "tres semanas", etc.
  • weight (número, opcional): Es el valor en el que se incrementa la cuota. El valor predeterminado es 1.

(2) El segundo argumento es una función de devolución de llamada con estos dos argumentos:

  • El primer argumento es un objeto Error si la cuota no se puede aumentar o indefinido si la operación se realiza correctamente.
  • El segundo es un objeto que contiene los siguientes campos:
    • used (número): Valor actual del bucket de cuota.
    • allowed (número): El valor máximo del bucket de cuota antes de que se considere que se superó la cuota. Se pasó el mismo valor como "allow" en el objeto de la solicitud.
    • isAllowed (booleano): Si hay espacio en la cuota (verdadero), siempre y cuando "used" sea menor o igual que "permitido".
    • expiryTime (largo): Es la marca de tiempo, en milisegundos desde el formato de 1970, en la que se restablecerá el bucket de cuota.
    • timestamp (largo): La marca de tiempo en la que se actualizó la cuota.

Ejemplo

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

restablecimiento

Para restablecer la cuota a cero, llama a quota.reset(). Este método toma dos parámetros:
  • Un objeto JSON con estos campos:
    • Identificador (string, obligatoria): Un identificador único del bucket de cuota. En la práctica, podría ser un ID de aplicación, una dirección IP o un nombre de usuario.
    • timeUnit (string, obligatoria): Durante cuánto tiempo se acumulará el bucket de cuota si se restablece. Los valores válidos son “minuto”, “hora”, “día”, “semana” y “mes”.
    • interval (número, opcional): Se combina con "timeUnit" para determinar cuánto tiempo antes de que se restablezca la cuota. El valor predeterminado es 1. Configúralo en un valor mayor para permitir tiempos de restablecimiento, como "dos horas", "tres semanas", etcétera.
  • Una función de devolución de llamada:
    • La devolución de llamada toma un objeto Error como primer parámetro si falla el restablecimiento.

Caso de uso de la cuota avanzada

Cuando creas una cuota, puedes incluir un objeto de "opciones" opcional. Este objeto tiene un parámetro opcional:
  • syncInterval (número, opcional): Es la cantidad de segundos durante los cuales la implementación de la cuota distribuida sincroniza su estado en la red. El valor predeterminado es 10.
Usa este parámetro para optimizar el rendimiento de la cuota distribuida en la red. Ten en cuenta que una configuración más baja disminuirá el rendimiento y aumentará drásticamente la latencia de la operación “apply”. El valor predeterminado de 10 segundos es una buena configuración para muchas aplicaciones. El intervalo se puede establecer en cero, lo que significa que el estado se sincroniza cada vez que se llama a "apply". En este caso, el rendimiento será mucho peor.