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 ऑब्जेक्ट है:

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

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

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

उदाहरण

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

रीसेट करें

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

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

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