Accesso al servizio delle quote in Node.js

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Introduzione

Questo argomento spiega come utilizzare apigee-access per accedere alla 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


applica

Modifica le impostazioni su un oggetto Quota. Utilizza questo metodo per aumentare o diminuire la quota, modificare gli intervalli di tempo e apportare 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 valore univoco identificatore del bucket di quota. In pratica, può trattarsi di un ID applicazione, un indirizzo IP o nome utente.
  • timeUnit (stringa, obbligatoria): durata della quota il bucket si accumulerà fino a quando non verrà reimpostato. I valori validi sono "minute", "ora", "giorno", "settimana", e "mese".
  • allow (numero, obbligatorio): il valore massimo per il bucket di quota. Questo valore verrà combinato con il valore corrente per restituire se il valore la quota è riuscita.
  • interval (numero, facoltativo): combinato con il "timeUnit" per determinare quanto tempo deve trascorrere prima della reimpostazione 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 da e aumentare 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 incrementato o non definito se l'operazione è riuscita.
  • Il secondo è un oggetto che contiene i seguenti campi:
    • used (numero): il valore corrente dell'attributo del bucket di quota.
    • allowed (numero): il valore massimo del parametro di un bucket di quota prima che la quota venga considerata superata. È stato trasmesso lo stesso valore di "consenti" nell'oggetto della richiesta.
    • isAllowed (booleano): se è rimasto spazio nella quota: vero finché "usato" è inferiore o uguale a "consentito".
    • expiryTime (long): il timestamp, in millisecondi dal formato 1970, quando il bucket di quota verrà reimpostato.
    • timestamp (long): il timestamp in cui la quota è stata aggiornata.

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 della quota di sincronizzare la directory di una VM con un bucket. In pratica potrebbe essere un ID applicazione, un indirizzo IP o un nome utente.
    • timeUnit (stringa, obbligatoria): tempo di accumulo del bucket di quota fino a quando non viene reimpostato. I valori validi sono "minute", "ora", "giorno", "settimana", e "month".
    • interval (numero, facoltativo): combinato con "timeUnit" per determinare prima che la quota venga reimpostata. Il valore predefinito è 1. Imposta un valore maggiore per consentire il ripristino come "due ore", "tre settimane" e così via.
  • Una funzione di callback:
      .
    • Il callback prende un oggetto Error come primo parametro se il ripristino non va a buon fine.

Caso d'uso di Quota avanzata

Quando crei una quota, puoi includere un'opzione "opzioni" facoltativa . Questo oggetto ha un parametro facoltativo:
  • syncInterval (numero, facoltativo): il numero di secondi in cui l'operatore quota distribuita sincronizza il suo stato in tutta la rete. Il valore predefinito è 10.
Utilizza questo parametro per ottimizzare le prestazioni della quota distribuita sulla rete. Conserva tieni presente che un'impostazione più bassa ridurrà le prestazioni e aumenterà notevolmente la latenza fai clic su "Applica" operativa. L'impostazione predefinita di 10 secondi è una buona impostazione per molte applicazioni. L'intervallo può essere impostato anche su zero, il che significa che lo stato viene sincronizzato ogni volta "applica" . Il rendimento sarà molto peggiore in questo caso.