Accede al servicio de cuotas en Node.js

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Introducción

En este tema, se explica cómo usar apigee-access para acceder a la cuota de Apigee Edge servicio 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 hacer otros parámetros 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 (cadena, obligatorio): un único identificador del bucket de cuota. En la práctica, podría ser un ID de aplicación, una dirección IP o nombre de usuario.
  • timeUnit (cadena, obligatoria): La duración de la cuota bucket se acumulará hasta que se restablezca. Los valores válidos son "minute", "hora" "día" "semana", y "por mes".
  • allow (número, obligatorio): el valor máximo para el bucket de la cuota. Este valor se combinará con el valor actual para mostrar si el valor la cuota se completó correctamente.
  • interval (número, opcional): Combinado con el “timeUnit” para determinar cuánto falta para restablecer la cuota. El valor predeterminado es 1. Configurar en un tamaño más grande para permitir cuotas, como "dos horas", "tres semanas", etcétera.
  • weight (número, opcional): El valor que se aumentar 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 puede incrementada o no definida si la operación se realizó correctamente.
  • El segundo es un objeto que contiene los siguientes campos:
    • used (número): El valor actual de la un bucket de cuota de almacenamiento.
    • allowed (número): El valor máximo de la bucket de la cuota antes de que se considere que se superó la cuota. Se pasó el mismo valor que "permitir" en el objeto de la solicitud.
    • isAllowed (booleano): Si queda espacio en la cuota: true, siempre y cuando "used" es menor o igual que "permitido".
    • expiryTime (long): La marca de tiempo, en milisegundos desde el formato 1970, cuando el bucket de cuota se restablecerá.
    • 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'); }
}

restablecer

Para restablecer la cuota a cero, llama cuota.reset(). Este método tiene dos parámetros:
  • Un objeto JSON con estos campos:
    • identifier (string, obligatorio): Un identificador único de la cuota bucket. En la práctica, podría ser un ID de aplicación, una dirección IP o un nombre de usuario.
    • timeUnit (cadena, obligatoria): Indica durante cuánto tiempo se acumulará el bucket de cuota. hasta que se restablece. Los valores válidos son "minute", "hora" "día" "semana", y "mes".
    • interval (número, opcional): Combinado con "timeUnit" para determinar cuánto falta para restablecer la cuota. El valor predeterminado es 1. Configúralo en un valor mayor para permitir el restablecimiento veces, 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 las “opciones” opcionales . Este objeto tiene un parámetro opcional:
  • syncInterval (número, opcional): número de segundos que o la implementación de cuotas distribuidas sincroniza su estado en toda la red. El valor predeterminado es 10.
Usa este parámetro para optimizar el rendimiento de la cuota distribuida en la red. Conservar un valor más bajo reducirá el rendimiento y aumentará drásticamente la latencia el botón "apply" una sola operación. La configuración predeterminada 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 "solicitar" se llama. El rendimiento será mucho peor en este caso.