Accesso al servizio delle quote in Node.js

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Introduzione

Questo argomento spiega come utilizzare apigee-access per accedere al servizio di quota di 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


apply

Modifica le impostazioni di un oggetto Quota. Utilizza questo metodo per aumentare o diminuire la quota, modificare gli intervalli di tempo ed eseguire 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 questi campi:

  • identifier (stringa, obbligatorio): un identificatore univoco identificatore del bucket di quota. In pratica, potrebbe trattarsi di un ID applicazione, un indirizzo IP o nome utente.
  • timeUnit (stringa, obbligatorio): per quanto tempo il bucket di quota si accumulerà fino al ripristino. I valori validi sono "minute," "hour," "day," "week," e "month."
  • allow (numero, obbligatorio): il valore massimo per il bucket di quota. Questo valore verrà combinato con il valore corrente per restituire se la quota è stata raggiunta.
  • interval (numero, facoltativo): combinato con "timeUnit" per determinare il tempo prima del ripristino della quota. Il valore predefinito è 1. Imposta un valore più grande per consentire quote come "due ore", "tre settimane" e così via.
  • weight (numero, facoltativo): il valore di 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 o undefined se l'operazione è riuscita.
  • Il secondo è un oggetto che contiene i seguenti campi:
    • used (numero): il valore corrente del bucket di quota.
    • allowed (numero): il valore massimo del bucket di quota prima che la quota venga considerata superata. Lo stesso valore è stato passato come "allow" nell'oggetto della richiesta.
    • isAllowed (booleano): se è rimasto spazio nella quota in essa, il valore è true finché "used" è minore o uguale a "allowed".
    • expiryTime (long): il timestamp, in millisecondi dal formato 1970, in cui verrà reimpostato il bucket di quota.
    • 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, chiama quota.reset(). Questo metodo accetta due parametri:
  • Un oggetto JSON con questi campi:
    • identifier (stringa, obbligatorio): un identificatore univoco del bucket di quota. In pratica, potrebbe trattarsi di un ID applicazione, un indirizzo IP o un nome utente.
    • timeUnit (stringa, obbligatorio): per quanto tempo il bucket di quota si accumulerà fino al ripristino. I valori validi sono "minute", "hour", "day", "week" e "month".
    • interval (numero, facoltativo): combinato con "timeUnit" per determinare il tempo prima del ripristino della quota. Il valore predefinito è 1. Imposta un valore più grande per consentire tempi di ripristino 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 riesce.

Caso d'uso avanzato della quota

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à il rendimento e aumenterà notevolmente la latenza dell'operazione "apply". L'impostazione predefinita di 10 secondi è una buona impostazione per molte applicazioni. L'intervallo può essere impostato su zero, il che significa che lo stato viene sincronizzato ogni volta che viene chiamato "apply" . In questo caso, il rendimento sarà molto peggiore.