Node.js में कोटा सेवा ऐक्सेस करने का तरीका

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

शुरुआती जानकारी

इस विषय में बताया गया है कि Node.js ऐप्लिकेशन से Apigee Edge कोटा सेवा को ऐक्सेस करने के लिए, apigee-access का इस्तेमाल कैसे करें. apigee-access की मदद से, कोटा की वैल्यू लागू और रीसेट की जा सकती हैं.

उदाहरण

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

तरीके


लागू करें

कोटा ऑब्जेक्ट की सेटिंग में बदलाव करता है. कोटा को बढ़ाने या कम करने, समय के अंतराल बदलने, और दूसरे कॉन्फ़िगरेशन करने के लिए यह तरीका इस्तेमाल करें.

इस्तेमाल का तरीका

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

उदाहरण

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

पैरामीटर

लागू() तरीका दो पैरामीटर, ऑब्जेक्ट और फ़ंक्शन को लेता है:

(1) पहला पैरामीटर इन फ़ील्ड वाला एक JSON ऑब्जेक्ट है:

  • identifier (स्ट्रिंग, ज़रूरी): कोटा बकेट का एक यूनीक आइडेंटिफ़ायर. यह ऐप्लिकेशन आईडी, आईपी पता या उपयोगकर्ता नाम हो सकता है.
  • timeUnit (स्ट्रिंग, ज़रूरी है): जब तक कोटा बकेट रीसेट नहीं हो जाती, तब तक यह कितनी देर तक इकट्ठा रहेगी. मान्य वैल्यू "मिनट," "घंटा," "दिन," "हफ़्ता", और "महीना" हैं.
  • allow (संख्या, ज़रूरी): कोटा बकेट के लिए सबसे ज़्यादा वैल्यू. इस वैल्यू को मौजूदा वैल्यू के साथ जोड़ दिया जाएगा, ताकि यह पता चल सके कि कोटा पूरा हो गया है या नहीं.
  • इंटरवल (संख्या, ज़रूरी नहीं): इसे "timeUnit" के साथ जोड़कर, यह तय किया जा सकता है कि कोटा को कितने समय पहले रीसेट किया जाएगा. डिफ़ॉल्ट वैल्यू 1 है. कोटे की अनुमति देने के लिए, बड़ी वैल्यू पर सेट करें. जैसे, "दो घंटे", "तीन हफ़्ते" वगैरह.
  • weight (संख्या, वैकल्पिक): कोटा को बढ़ाने के लिए वैल्यू. डिफ़ॉल्ट संख्या 1 है.

(2) दूसरा आर्ग्युमेंट एक कॉलबैक फ़ंक्शन है, जिसमें ये दो आर्ग्युमेंट होते हैं:

  • अगर कोटा को बढ़ाया नहीं जा सकता या कार्रवाई पूरी हो गई है, तो पहला तर्क गड़बड़ी वाला ऑब्जेक्ट होता है.
  • दूसरा ऑब्जेक्ट है, जिसमें ये फ़ील्ड होते हैं:
    • used (संख्या): कोटा बकेट की मौजूदा वैल्यू.
    • अनुमति है (संख्या): कोटा बकेट की ज़्यादा से ज़्यादा वह वैल्यू, जो कोटा को पार करने से पहले की होती है. अनुरोध ऑब्जेक्ट में वही वैल्यू "allow" के तौर पर पास की गई थी.
    • isAllowed (बूलियन): अगर कोटा में जगह बची है, तो सही, जब तक कि "used", "अनुमति है" से कम या उसके बराबर हो.
    • expiryTime (लंबा): 1970 के फ़ॉर्मैट के बाद से मिलीसेकंड में टाइमस्टैंप, जब कोटा बकेट को रीसेट किया जाएगा.
    • timestamp (long): वह टाइमस्टैंप जिस पर कोटा अपडेट किया गया.

उदाहरण

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

रीसेट करें

कोटा को शून्य पर रीसेट करने के लिए, ot.reset() को कॉल करें. यह तरीका दो पैरामीटर लेता है:
  • इन फ़ील्ड वाला JSON ऑब्जेक्ट:
    • identifier (स्ट्रिंग, ज़रूरी): कोटा बकेट का यूनीक आइडेंटिफ़ायर. यह ऐप्लिकेशन आईडी, आईपी पता या उपयोगकर्ता नाम हो सकता है.
    • timeUnit (स्ट्रिंग, ज़रूरी): कोटा बकेट को रीसेट किए जाने तक यह कितनी देर तक इकट्ठा रहेगी. मान्य वैल्यू "मिनट," "घंटा," "दिन," "हफ़्ता", और "महीना" हैं.
    • इंटरवल (संख्या, ज़रूरी नहीं): इसे "timeUnit" के साथ जोड़कर, यह तय किया जा सकता है कि कोटा को कितने समय पहले रीसेट किया जाएगा. डिफ़ॉल्ट वैल्यू 1 है. वैल्यू को बड़ी करके सेट करें. इससे, पासवर्ड रीसेट होने में लगने वाला समय "दो घंटे", "तीन हफ़्ते" वगैरह के लिए सेट हो जाएगा.
  • कॉलबैक फ़ंक्शन:
    • अगर रीसेट नहीं हो पाता है, तो कॉलबैक पहले पैरामीटर के तौर पर 'गड़बड़ी' ऑब्जेक्ट लेता है.

बेहतर कोटा के इस्तेमाल का उदाहरण

कोटा बनाते समय, आपके पास एक वैकल्पिक "विकल्प" ऑब्जेक्ट को शामिल करने का विकल्प भी होता है. इस ऑब्जेक्ट में एक वैकल्पिक पैरामीटर है:
  • syncInterval (संख्या, ज़रूरी नहीं): सेकंड की वह संख्या जिन्हें डिस्ट्रिब्यूट किया गया कोटा लागू करने के बाद, पूरे नेटवर्क पर सिंक किया जाता है. डिफ़ॉल्ट संख्या 10 है.
पूरे नेटवर्क में डिस्ट्रिब्यूट किए गए कोटा की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, इस पैरामीटर का इस्तेमाल करें. ध्यान रखें कि सेटिंग कम करने से परफ़ॉर्मेंस में गिरावट आ सकती है और "लागू करें" कार्रवाई के लिए, इंतज़ार का समय काफ़ी बढ़ सकता है. 10 सेकंड की डिफ़ॉल्ट सेटिंग कई ऐप्लिकेशन के लिए एक अच्छी सेटिंग है. इंटरवल को शून्य तक सेट किया जा सकता है. इसका मतलब है कि जब भी "लागू करें" कॉल किया जाता है, तब इंटरवल सिंक होता है. इस मामले में, परफ़ॉर्मेंस काफ़ी खराब होगी.