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

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

परिचय

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

उदाहरण

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 (संख्या, ज़रूरी है): इसके लिए सबसे ज़्यादा मान कोटा बकेट. इस मान को वर्तमान मान के साथ मिला दिया जाएगा, ताकि यह दिखाया जा सके कि कोटा पूरा हो गया.
  • इंटरवल (संख्या, वैकल्पिक): इसके साथ जोड़ा जाता है "टाइमयूनिट" का इस्तेमाल करें. डिफ़ॉल्ट वैल्यू एक होती है. ज़्यादा बड़े साइज़ पर सेट करें कोटा को अनुमति देने वाला मान, जैसे "दो घंटे," "तीन हफ़्ते," वगैरह.
  • weight (number, वैकल्पिक): कोटा को इतना बढ़ाएं. डिफ़ॉल्ट संख्या एक होती है.

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

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

उदाहरण

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

रीसेट

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

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

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