Node.js'de kota hizmetine erişme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Giriş

Bu konuda, Node.js uygulamasından Apigee Edge kota hizmetine erişmek için apigee-access nasıl kullanılacağı açıklanmaktadır. apigee-access ile kota değerlerini uygulayabilir ve sıfırlayabilirsiniz.

Örnek

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

Yöntemler


uygulanır

Kota nesnesindeki ayarları değiştirir. Kotayı artırmak veya azaltmak, zaman aralıklarını değiştirmek ve diğer yapılandırmaları yapmak için bu yöntemi kullanın.

Kullanım

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

Örnek

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

Parametreler

apply() yöntemi iki parametre alır: bir nesne ve bir işlev:

(1) İlk parametre, şu alanları içeren bir JSON nesnesidir:

  • identifier (dize, zorunlu): Kota grubu için benzersiz bir tanımlayıcı. Uygulamada bu, uygulama kimliği, IP adresi veya kullanıcı adı olabilir.
  • timeUnit (dize, zorunlu): Kota grubu sıfırlanana kadar ne kadar süre boyunca birikecek? Geçerli değerler "minute" (dakika), "hour" (saat), "day" (gün), "week" (hafta) ve "month" (ay) değerleridir.
  • allow (sayı, zorunlu): Kota grubu için maksimum değer. Bu değer, kotanın başarılı olup olmadığını döndürmek için mevcut değerle birleştirilir.
  • interval (sayı, isteğe bağlı): Kotanın sıfırlanmasından ne kadar süre önce geçerli olacağını belirlemek için "timeUnit" ile birlikte kullanılır. Varsayılan değer 1'dir. "İki saat", "üç hafta" gibi kotalara izin vermek için daha büyük bir değere ayarlayın.
  • weight (sayı, isteğe bağlı): Kotanın artırılacağı değer. Varsayılan değer, 1'dir.

(2) İkinci bağımsız değişken, şu iki bağımsız değişkene sahip bir geri çağırma işlevidir:

  • Kota artırılamazsa ilk bağımsız değişken bir hata nesnesi, işlem başarılı olursa da tanımsız olur.
  • İkincisi ise aşağıdaki alanları içeren bir nesnedir:
    • used (sayı): Kota paketinin mevcut değeri.
    • allowed (sayı): Kotanın aşıldığı kabul edilmeden önceki kota paketi için izin verilen maksimum değer. Aynı değer, istek nesnesinde "allow" olarak iletildi.
    • isAllowed (boolean): Kota içinde yer kalmışsa "kullanılan" değeri "izin verilen" değerinden küçük veya bu değere eşit olduğu sürece doğru (true) olur.
    • expiryTime (uzun): Kota grubunun sıfırlanacağı zamanın 1970'ten itibaren milisaniye cinsinden zaman damgası.
    • timestamp (uzun): Kotanın güncellendiği zaman damgası.

Örnek

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

sıfırla

Kotayı sıfıra sıfırlamak için quota.reset() işlevini çağırın. Bu yöntem iki parametre alır:
  • Şu alanları içeren bir JSON nesnesi:
    • identifier (dize, zorunlu): Kota paketi için benzersiz bir tanımlayıcı. Uygulamada bu, bir uygulama kimliği, IP adresi veya kullanıcı adı olabilir.
    • timeUnit (dize, zorunlu): Kota grubu sıfırlanana kadar ne kadar süre boyunca birikir? Geçerli değerler "minute" (dakika), "hour" (saat), "day" (gün), "week" (hafta) ve "month" (ay) değerleridir.
    • interval (sayı, isteğe bağlı): Kotanın sıfırlanmasına ne kadar süre kaldığını belirlemek için "timeUnit" ile birlikte kullanılır. Varsayılan değer 1'dir. "İki saat", "üç hafta" vb. sıfırlama sürelerine izin vermek için daha büyük bir değere ayarlayın.
  • Geri çağırma işlevi:
    • Sıfırlama başarısız olursa geri çağırma, ilk parametre olarak bir hata nesnesi alır.

Gelişmiş kota kullanım alanı

Kota oluştururken isteğe bağlı bir "options" nesnesi ekleyebilirsiniz. Bu nesnenin isteğe bağlı bir parametresi vardır:
  • syncInterval (sayı, isteğe bağlı): Dağıtılmış kota uygulaması durumunu ağ genelinde senkronize ederken geçen saniye sayısı. Varsayılan değer 10'dur.
Bu parametreyi, ağ genelinde dağıtılan kotanın performansını optimize etmek için kullanın. Daha düşük bir ayarın performansı düşüreceğini ve "uygula" işleminin gecikmesini önemli ölçüde artıracağını unutmayın. Varsayılan 10 saniye ayarı, birçok uygulama için uygundur. Aralık sıfır olarak ayarlanabilir. Bu durumda, "apply" her çağrıldığında durum senkronize edilir. Bu durumda performans çok daha kötü olacaktır.