Accesso al servizio delle quote in Node.js

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

Introduzione

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


applicare

Modifica le impostazioni di un oggetto Quota. Utilizza questo metodo per aumentare o diminuire la quota, modificare gli intervalli di tempo e creare 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 essere un ID applicazione, un indirizzo IP o un nome utente.
  • timeUnit (stringa, obbligatorio): per quanto tempo si accumulerà il bucket di quota fino alla reimpostazione. I valori validi sono "minuto", "ora", "giorno", "settimana" e "mese".
  • allow (numero, obbligatorio): il valore massimo per il bucket di quota. Questo valore verrà combinato con il valore attuale per verificare se la quota ha avuto esito positivo.
  • interval (numero, facoltativo): combinato con "timeUnit" per determinare quanto tempo deve trascorrere prima della reimpostazione della quota. Il valore predefinito è 1. Imposta un valore maggiore per consentire quote come "due ore", "tre settimane" e così via.
  • weight (numero, facoltativo): il valore per 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 aumentata o non è definita se l'operazione è riuscita.
  • Il secondo è un oggetto che contiene i seguenti campi:
    • used (numero): il valore attuale del bucket di quota.
    • allowed (numero): il valore massimo del bucket di quota prima che la quota sia considerata superata. Nell'oggetto della richiesta è stato trasmesso lo stesso valore di "allow".
    • isAllowed (booleano): se nella quota è rimasto spazio, è true purché "used" sia inferiore o uguale a "allowed".
    • expiryTime (long): il timestamp, in millisecondi dal formato del 1970, al momento della reimpostazione del 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'); }
}

reimpostare

Per reimpostare la quota su zero, chiama quota.reset(). Questo metodo richiede due parametri:
  • Un oggetto JSON con i seguenti campi:
    • identifier (stringa, obbligatorio): un identificatore univoco del bucket di quota. In pratica, potrebbe essere un ID applicazione, un indirizzo IP o un nome utente.
    • timeUnit (stringa, obbligatorio): per quanto tempo si accumulerà il bucket di quota fino al momento della reimpostazione. I valori validi sono "minuto", "ora", "giorno", "settimana" e "mese".
    • interval (numero, facoltativo): combinato con "timeUnit" per determinare quanto tempo deve trascorrere prima della reimpostazione della quota. Il valore predefinito è 1. Imposta un valore maggiore per consentire tempi di reimpostazione, ad esempio "due ore", "tre settimane" e così via.
  • Una funzione di callback:
    • Se la reimpostazione non va a buon fine, il callback prende un oggetto Errore come primo parametro.

Caso d'uso avanzato delle quote

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