Accesso al servizio delle quote in Node.js

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

Introduzione

Questo argomento spiega come utilizzare apigee-access per accedere al servizio di quota Apigee Edge da un'applicazione Node.js. Con apigee-access, puoi applicare e reimpostare i valori di quota.

Esempio

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

Metodi


applica

Modifica le impostazioni su un oggetto Quota. Utilizza questo metodo per aumentare o diminuire la quota, modificare gli intervalli di tempo e effettuare altre configurazioni.

Utilizzo

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

Esempio

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

Parametri

Il metodo apply() accetta due parametri, un oggetto e una funzione:

(1) Il primo parametro è un oggetto JSON con i seguenti campi:

  • identifier (stringa, obbligatorio): un identificatore univoco del bucket di quota. In pratica, potrebbe trattarsi di un ID applicazione, di un indirizzo IP o di un nome utente.
  • timeUnit (stringa, obbligatoria): il periodo di tempo per cui il bucket della quota verrà accumulato fino al relativo azzeramento. I valori validi sono "minute", "hour", "day", "week" e "month".
  • allow (numero, obbligatorio): il valore massimo per il bucket della quota. Questo valore verrà combinato con il valore corrente per indicare se la quota è andata a buon fine.
  • interval (numero, facoltativo): combinato con "timeUnit" per determinare il tempo che deve trascorrere prima che la quota venga reimpostata. Il valore predefinito è 1. Imposta un valore maggiore per consentire quote, ad esempio "due ore", "tre settimane" e così via.
  • weight (numero, facoltativo): il valore con cui incrementare la quota. Il valore predefinito è 1.

(2) Il secondo argomento è una funzione di callback con questi due argomenti:

  • Il primo argomento è un oggetto Error se la quota non può essere incrementata, oppure non definita se l'operazione è riuscita.
  • Il secondo è un oggetto contenente i seguenti campi:
    • used (numero): il valore attuale del bucket di quota.
    • allowed (numero): il valore massimo del bucket della quota prima che la quota sia considerata superata. Lo stesso valore è stato passato come "allow" nell'oggetto della richiesta.
    • isAllowed (booleano): se è rimasta spazio nella quota, il valore è true purché "used" sia minore o uguale a "allowed".
    • expiryTime (long): il timestamp in millisecondi dal 1970 quando il bucket della quota verrà reimpostato.
    • timestamp (long): il timestamp in cui è stata aggiornata la quota.

Esempio

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

reset

Per reimpostare la quota su zero, richiama quota.reset(). Questo metodo richiede due parametri:
  • Un oggetto JSON con i seguenti campi:
    • identifier (stringa, obbligatorio): un identificatore univoco del bucket della quota. In pratica potrebbe essere un ID applicazione, un indirizzo IP o un nome utente.
    • timeUnit (stringa, obbligatoria): il periodo di tempo per cui verrà accumulato il bucket della quota se viene reimpostato. I valori validi sono "minute", "hour", "day", "week" e "month".
    • interval (numero, facoltativo): combinato con "timeUnit" per determinare quanto tempo deve passare prima che la quota venga reimpostata. Il valore predefinito è 1. Imposta un valore maggiore per consentire di reimpostare intervalli di tempo come "due ore", "tre settimane" e così via.
  • Una funzione di callback:
    • Il callback accetta un oggetto Error come primo parametro se il ripristino non va a buon fine.

Caso d'uso Quota avanzata

Quando crei una quota, puoi includere un oggetto "options" facoltativo. Questo oggetto ha un parametro facoltativo:
  • syncInterval (numero, facoltativo): il numero di secondi in cui l'implementazione della quota distribuita sincronizza il suo stato nella rete. Il valore predefinito è 10.
Utilizza questo parametro per ottimizzare il rendimento della quota distribuita nella rete. Tieni presente che un'impostazione più bassa peggiorerà le prestazioni e aumenterà notevolmente la latenza dell'operazione "applica". L'impostazione predefinita di 10 secondi è ottima per molte applicazioni. L'intervallo può essere impostato su un valore minimo pari a zero, il che significa che lo stato viene sincronizzato ogni volta che viene chiamato "apply". In questo caso, il rendimento sarà molto peggiore.