प्लग इन का इस्तेमाल करना

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

Edge Microgateway v. 3.3.x

दर्शक

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

Edge माइक्रोगेटवे प्लगिन क्या है?

प्लगिन एक Node.js मॉड्यूल होता है, जो एज माइक्रोगेटवे में फ़ंक्शन जोड़ता है. प्लगिन मॉड्यूल एक जैसे पैटर्न के हिसाब से होते हैं और ऐसी जगह पर सेव किए जाते हैं जहां Edge माइक्रोगेटवे के लिए जानकारी होती है. इससे माइक्रोगेटवे उन्हें अपने-आप खोज और लोड कर पाता है. Edge माइक्रोगेटवे में कई मौजूदा प्लग इन होते हैं और आप पसंद के मुताबिक प्लग भी बना सकते हैं. इसके बारे में पसंद के मुताबिक प्लग इन डेवलप करें में बताया गया है.

Edge माइक्रोगेटवे के साथ बंडल किए गए मौजूदा प्लग इन

इंस्टॉल करते समय EDGE माइक्रोगेटवे के साथ कई प्लग इन दिए जाते हैं. नीचे दी गई टेबल में, सबसे ज़्यादा इस्तेमाल किए जाने वाले कुछ प्लगिन के बारे में बताया गया है.

प्लग इन डिफ़ॉल्ट रूप से चालू है ब्यौरा
आंकड़े हां यह सुविधा, Edge माइक्रोगेटवे से Apigee Edge में आंकड़ों का डेटा भेजता है.
oauth हां Edge माइक्रोगेटवे में OAuth टोकन और एपीआई पासकोड की पुष्टि करता है. एज माइक्रोगेटवे को सेट अप और कॉन्फ़िगर करना देखें.
कोटा नहीं Edge माइक्रोगेटवे के अनुरोधों के लिए कोटा लागू करता है. कोटा को सेव और मैनेज करने के लिए, Apigee Edge का इस्तेमाल किया जाता है. कोटा प्लगिन का इस्तेमाल करना देखें.
स्पाइकअरेस्ट नहीं ट्रैफ़िक में अचानक होने वाली बढ़ोतरी और DoS के हमलों से सुरक्षा करता है. स्पाइक अरेस्ट प्लगिन का इस्तेमाल करना देखें.
हेडर-अपरकेस नहीं एक टिप्पणी, प्रॉक्सी का एक नमूना. यह एक गाइड है, जिसका मकसद कस्टम प्लग इन लिखने में डेवलपर की मदद करना है. Edge Microgateway सैंपल प्लगिन देखें.
खाते को इकट्ठा करने का अनुरोध नहीं प्लगिन चेन में अगले हैंडलर को डेटा भेजने से पहले अनुरोध किए गए डेटा को एक ही ऑब्जेक्ट के तौर पर इकट्ठा करता है. इससे उन प्लग इन को बदलने में मदद मिलती है जिन्हें एक ही इकट्ठा किए गए अनुरोध वाले कॉन्टेंट ऑब्जेक्ट पर काम करना होता है.
रिस्पॉन्स-रिस्पॉन्स नहीं प्लगिन चेन में अगले हैंडलर को डेटा भेजने से पहले, रिस्पॉन्स डेटा को एक ही ऑब्जेक्ट में इकट्ठा करता है. इससे उन प्लग इन को बदलने में मदद मिलती है जिन्हें एक ही इकट्ठा किए गए रिस्पॉन्स कॉन्टेंट वाले ऑब्जेक्ट पर काम करना होता है.
अपरकेस बदलना नहीं यह अनुरोध या जवाब के डेटा को बदलता है. यह प्लगिन, 'ट्रांसफ़ॉर्म' प्लगिन को लागू करने का सबसे सही तरीका दिखाता है. उदाहरण के तौर पर दिया गया प्लगिन, छोटा-सा ट्रांसफ़ॉर्म करता है (अनुरोध या जवाब के डेटा को अपरकेस में बदल देता है). हालांकि, एक्सएमएल से JSON जैसे दूसरे तरह के बदलाव करने के लिए, इसे आसानी से बदला जा सकता है.
json2xml नहीं स्वीकार किए जाने वाले या कॉन्टेंट के टाइप के हेडर के आधार पर, अनुरोध या रिस्पॉन्स डेटा को बदलता है. ज़्यादा जानकारी के लिए, GitHub में प्लगिन दस्तावेज़ देखें.
कोटा-मेमोरी नहीं Edge माइक्रोगेटवे के अनुरोधों के लिए कोटा लागू करता है. लोकल मेमोरी में कोटा स्टोर और मैनेज करता है.
healthcheck नहीं EDGE माइक्रोगेटवे प्रोसेस -- मेमोरी के इस्तेमाल, सीपीयू के इस्तेमाल वगैरह की जानकारी दिखाता है. प्लगिन का इस्तेमाल करने के लिए, अपने Edge माइक्रोगेटवे इंस्टेंस पर मौजूद यूआरएल /healthcheck को कॉल करें. इस प्लगिन को एक उदाहरण के तौर पर बनाया गया है. इसका इस्तेमाल करके, स्वास्थ्य की जांच करने वाले अपने प्लगिन को लागू किया जा सकता है.

मौजूदा प्लग इन कहां मिलेंगे

Edge माइक्रोगेटवे के साथ बंडल किए गए मौजूदा प्लग इन यहां मौजूद होते हैं जहां [prefix], npm प्रीफ़िक्स डायरेक्ट्री है. अगर यह डायरेक्ट्री नहीं मिल रही है, तो देखें कि Edge माइक्रोगेटवे कहां इंस्टॉल है.

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins

प्लगिन जोड़ना और कॉन्फ़िगर करना

प्लगिन जोड़ने और कॉन्फ़िगर करने के लिए, इस पैटर्न का पालन करें:

  1. एज माइक्रोगेटवे को बंद करो.
  2. Edge माइक्रोगेटवे कॉन्फ़िगरेशन की फ़ाइल खोलें. ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन में बदलाव करना लेख पढ़ें.
  3. कॉन्फ़िगरेशन फ़ाइल के plugins:sequence एलिमेंट में प्लगिन जोड़ें, जैसा कि यहां बताया गया है. प्लग इन उसी क्रम में चलाए जाते हैं जिस क्रम में वे इस सूची में दिखते हैं.
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
     level: info
     dir: /var/tmp
     stats_log_interval: 60
  plugins:
     dir: ../plugins
     sequence:   
     - oauth
     - plugin-name
  1. प्लगिन कॉन्फ़िगर करें. कुछ प्लग इन में ऐसे पैरामीटर होते हैं जिन्हें कॉन्फ़िगर फ़ाइल में कॉन्फ़िगर किया जा सकता है. उदाहरण के लिए, स्पाइक अरेस्ट प्लगिन को कॉन्फ़िगर करने के लिए, यह छंद जोड़ा जा सकता है. ज़्यादा जानकारी के लिए, स्पाइक अरेस्ट प्लगिन का इस्तेमाल करना देखें.
    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
        sequence:
          - oauth
          - spikearrest
    spikearrest:
       timeUnit: minute
       allow: 10
    
  1. फ़ाइल सेव करें.
  2. आपने जिस कॉन्फ़िगरेशन फ़ाइल में बदलाव किया है उसके आधार पर, Edge माइक्रोगेटवे को रीस्टार्ट या फिर से लोड करें.

प्लगिन के लिए खास कॉन्फ़िगरेशन

आपके पास इस डायरेक्ट्री में, प्लगिन के हिसाब से कॉन्फ़िगरेशन बनाकर, कॉन्फ़िगरेशन फ़ाइल में दिए गए प्लगिन के पैरामीटर को बदलने का विकल्प होता है:

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config

जहां [prefix], npm प्रीफ़िक्स डायरेक्ट्री है. अगर यह डायरेक्ट्री नहीं मिल रही है, तो देखें कि Edge माइक्रोगेटवे कहां इंस्टॉल है.

plugins/<plugin_name>/config/default.yaml. उदाहरण के लिए, आप इस ब्लॉक को plugins/spikearrest/config/default.yaml में रख सकते हैं और वह किसी भी दूसरी कॉन्फ़िगरेशन सेटिंग को बदल देगा.

spikearrest:
   timeUnit: hour   
   allow: 10000   
   buffersize: 0

स्पाइक अरेस्ट प्लगिन का इस्तेमाल करना

स्पाइक अरेस्ट प्लगिन, ट्रैफ़िक में होने वाली बढ़ोतरी से बचाता है. यह एज माइक्रोगेटवे इंस्टेंस से प्रोसेस किए गए अनुरोधों की संख्या को थ्रॉटल कर देता है.

स्पाइक अरेस्ट प्लगिन जोड़ा जा रहा है

प्लगिन जोड़ना और कॉन्फ़िगर करना देखें.

उपयोगकर्ता की गतिविधि में बढ़ोतरी के लिए सैंपल कॉन्फ़िगरेशन

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - spikearrest
spikearrest:
   timeUnit: minute
   allow: 10
   bufferSize: 5

उपयोगकर्ता की गतिविधि में अचानक हुई बढ़ोतरी के लिए कॉन्फ़िगरेशन के विकल्प

  • timeUnit: इसकी मदद से, यह जानकारी मिलती है कि स्पाइक अरेस्ट की, एक्ज़ीक्यूशन विंडो को कितनी बार रीसेट किया जाता है. मान्य वैल्यू, सेकंड या मिनट होती हैं.
  • allow: TimeUnit के दौरान स्वीकार किए जाने वाले अनुरोधों की ज़्यादा से ज़्यादा संख्या. अगर एक से ज़्यादा Edge माइक्रो प्रोसेस चलाए जा रहे हैं, तो यह भी देखें.
  • bufferSize: (ज़रूरी नहीं, डिफ़ॉल्ट = 0) अगर bufferSize > 0 है, स्पाइक अरेस्ट अनुरोधों की इस संख्या को बफ़र में सेव करता है. अगली बार एक्ज़ीक्यूशन "विंडो" होने पर, सबसे पहले बफ़र किए गए अनुरोधों को प्रोसेस किया जाएगा. बफ़र जोड़ना भी देखें.

स्पाइक अरेस्ट कैसे काम करता है?

ट्रैफ़िक में बढ़ोतरी को सीमित करने के बजाय, ट्रैफ़िक में अचानक होने वाली बढ़ोतरी को रोकने के लिए, ट्रैफ़िक में अचानक हुई बढ़ोतरी को रोकने के एक तरीके के तौर पर देखें. आपके एपीआई और बैकएंड में, तय संख्या में ट्रैफ़िक मैनेज किया जा सकता है. साथ ही, अरेस्ट अरेस्ट की नीति से, आपको अपनी पसंद के मुताबिक सामान्य ट्रैफ़िक तक पहुंचने में मदद मिलती है.

रनटाइम में अचानक हुई बढ़ोतरी की वजह से, रुकी हुई गतिविधियों की संख्या, हर मिनट या हर सेकंड के लिटरल वैल्यू के हिसाब से दिखने की संभावना से अलग होती है.

उदाहरण के लिए, मान लें कि आपने हर मिनट 30 अनुरोधों की दर तय की है. जैसे:

spikearrest:
   timeUnit: minute
   allow: 30

टेस्टिंग के दौरान, आपको लगता है कि एक सेकंड में 30 अनुरोध भेजे जा सकते हैं. हालांकि, इसके लिए ज़रूरी है कि वे अनुरोध एक मिनट में मिले. हालांकि, नीति इस तरह से सेटिंग लागू नहीं करती है. अगर आपकी राय में, एक सेकंड की अवधि में 30 अनुरोध किए जाएं, तो कुछ एनवायरमेंट में कम बढ़ोतरी दिख सकती है.

फिर, असल में क्या होता है? इस तरह के व्यवहार से बचने के लिए, स्पाइक अरेस्ट आपकी सेटिंग को छोटे-छोटे इंटरवल में बांटकर, तय किए गए ट्रैफ़िक को आसान बना देता है. इसके लिए, यहां दिया गया तरीका अपनाएं:

हर मिनट के हिसाब से किराया

हर मिनट की दरें, अनुमति वाले सेकंड के अनुरोधों के हिसाब से जोड़ दी जाती हैं. उदाहरण के लिए, प्रति मिनट 30 अनुरोध इस तरह से आसान हो जाते हैं:

60 सेकंड (1 मिनट) / 30 = 2-सेकंड का अंतराल या हर दो सेकंड में करीब एक अनुरोध. दो सेकंड के अंदर दूसरा अनुरोध पूरा नहीं किया जा सकेगा. साथ ही, एक मिनट के अंदर किया गया 31वां अनुरोध स्वीकार नहीं किया जाएगा.

हर सेकंड की दरें

हर सेकंड की दरें, मिलीसेकंड के अंतराल में मंज़ूर किए गए अनुरोधों के हिसाब से जोड़ दी जाती हैं. उदाहरण के लिए, हर सेकंड 10 अनुरोध इस तरह से आसान हो जाते हैं:

1, 000 मिलीसेकंड (एक सेकंड) / 10 = 100-मिलीसेकंड इंटरवल या हर 100 मिलीसेकंड पर करीब एक अनुरोध . 100 मि॰से॰ के अंदर दूसरा अनुरोध पूरा नहीं हो पाएगा. साथ ही, एक सेकंड के अंदर किया गया 11वां अनुरोध अस्वीकार हो जाएगा.

सीमा पार होने पर

अगर अनुरोधों की संख्या, तय की गई समयावधि में तय सीमा से ज़्यादा हो जाती है, तो स्पाइक अरेस्ट गड़बड़ी का यह मैसेज एचटीटीपी 503 स्टेटस के साथ दिखाता है:

{"error": "spike arrest policy violated"}

बफ़र जोड़ना

आपके पास नीति में बफ़र जोड़ने का विकल्प होता है. मान लें कि आपने बफ़र को 10 पर सेट किया है. जैसे ही बढ़ोतरी, उपयोगकर्ता के देखने की संख्या बढ़ाने की सीमा से ज़्यादा हो जाती है, एपीआई तुरंत गड़बड़ी नहीं दिखाता. इसके बजाय, अनुरोधों को (तय की गई संख्या तक) बफ़र कर दिया जाता है. साथ ही, अगली सही एक्ज़ीक्यूशन विंडो के उपलब्ध होते ही, बफ़र किए गए अनुरोधों को प्रोसेस कर दिया जाता है. डिफ़ॉल्ट रूप से, bufferSize की वैल्यू 0 होती है.

अगर एक से ज़्यादा EDGE माइक्रो प्रोसेस चलाई जा रही हैं, तो

मंज़ूर किए गए अनुरोधों की संख्या, Edge माइक्रो वर्कर की चल रही प्रोसेस की संख्या पर निर्भर करती है. स्पाइक अरेस्ट हर वर्कर प्रोसेस के हिसाब से अनुरोधों की संख्या कैलकुलेट करता है. डिफ़ॉल्ट रूप से, Edge माइक्रो प्रोसेस की संख्या, मशीन पर उन सीपीयू की संख्या के बराबर होती है जहां Edge माइक्रो इंस्टॉल किया गया है. हालांकि, जब आप Edge माइक्रो को शुरू करते हैं, तो start कमांड में दिए गए --processes विकल्प का इस्तेमाल करके वर्कर प्रोसेस की संख्या कॉन्फ़िगर की जा सकती है. उदाहरण के लिए, अगर आपको किसी तय समयावधि में 100 अनुरोधों पर स्पाक अरेस्ट ट्रिगर करना है और उसे --processes 4 विकल्प के साथ एज माइक्रोगेटवे शुरू करना है, तो स्पाक अरेस्ट कॉन्फ़िगरेशन में allow: 25 को सेट करें. खास जानकारी देने के लिए, allow कॉन्फ़िगरेशन पैरामीटर को "उभरती हुई बढ़ोतरी की गिरफ़्तारी की संख्या / प्रोसेस की संख्या" वैल्यू पर सेट करना है.

कोटा प्लगिन का इस्तेमाल करना

कोटा से ऐसे अनुरोध मैसेज की संख्या तय होती है जिन्हें किसी ऐप्लिकेशन को एक घंटे, दिन, हफ़्ते या महीने के दौरान एपीआई पर सबमिट करने की अनुमति होती है. जब किसी ऐप्लिकेशन में कोटे की तय सीमा तक पहुंच जाती है, तब बाद के एपीआई कॉल अस्वीकार कर दिए जाते हैं. स्पाइक अरेस्ट और कोटा के बीच क्या अंतर है? देखें.

कोटा प्लगिन जोड़ना

प्लगिन जोड़ना और कॉन्फ़िगर करना देखें.

Apigee Edge में प्रॉडक्ट कॉन्फ़िगरेशन

Apigee Edge के यूज़र इंटरफ़ेस (यूआई) में कोटा कॉन्फ़िगर किया जा सकता है. यहां एपीआई प्रॉडक्ट कॉन्फ़िगर किए जाते हैं. आपको यह जानना ज़रूरी है कि किस प्रॉडक्ट में माइक्रोगेटवे-अवेयर प्रॉक्सी है, जिसे आपको कोटा के साथ सीमित करना है. इस प्रॉडक्ट को किसी डेवलपर ऐप्लिकेशन से जोड़ना ज़रूरी है. जब डेवलपर ऐप्लिकेशन में कुंजियों का इस्तेमाल करके पुष्टि किए गए एपीआई कॉल किए जाते हैं, तो उन एपीआई कॉल के लिए कोटा लागू किया जाएगा.

  1. अपने संगठन के Apigee Edge खाते में लॉग इन करें.
  2. Edge यूज़र इंटरफ़ेस (यूआई) में, माइक्रोगेटवे-अवेयर प्रॉक्सी से जुड़े उस प्रॉडक्ट को खोलें जिस पर आपको कोटा लागू करना है.
    1. यूज़र इंटरफ़ेस (यूआई) में, 'पब्लिश करें' मेन्यू से प्रॉडक्ट चुनें.
    2. वह प्रॉडक्ट खोलें जिसमें वह एपीआई मौजूद है जिस पर आपको कोटा लागू करना है.
    3. बदलाव करें पर क्लिक करें.
    4. कोटा फ़ील्ड में, कोटा इंटरवल तय करें. उदाहरण के लिए, हर एक मिनट में 100 अनुरोध. या हर 2 घंटे में 50,000 अनुरोध करें.

  1. सेव करें पर क्लिक करें.
  2. पक्का करें कि प्रॉडक्ट को किसी डेवलपर ऐप्लिकेशन से जोड़ा गया हो. पुष्टि किए गए एपीआई कॉल करने के लिए, आपको इस ऐप्लिकेशन के लिए कुंजियों की ज़रूरत होगी.

कोटा के लिए सैंपल कॉन्फ़िगरेशन

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - quota

कोटा के लिए कॉन्फ़िगरेशन विकल्प

कोटा प्लगिन को कॉन्फ़िगर करने के लिए, अपनी कॉन्फ़िगरेशन फ़ाइल में quotas एलिमेंट जोड़ें, जैसा कि इस उदाहरण में दिखाया गया है:

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - quota
quotas:
    bufferSize:
      hour: 20000
      minute: 500
      month: 1
      default: 10000
    useDebugMpId: true
    failOpen: true
    isHTTPStatusTooManyRequestEnabled: true
...
विकल्प ब्यौरा
bufferSize

(Integer) bufferSize कॉन्फ़िगरेशन से यह तय किया जा सकता है कि Edge माइक्रोगेटवे कितनी बार अपने कोटा की संख्या को Apigee Edge के साथ सिंक कर सकता है. bufferSize को समझने के लिए, कॉन्फ़िगरेशन के यहां दिए गए उदाहरण देखें:

quotas:
 bufferSize:
  minute: 500
  default: 10000
 useDebugMpId: true
 failOpen: true

अगर कोटा इंटरवल "मिनट" पर सेट है, तो माइक्रोगेटवे डिफ़ॉल्ट रूप से अपने कोटा काउंटर को Apigee Edge के साथ हर पांच सेकंड में सिंक करता है. ऊपर दिए गए कॉन्फ़िगरेशन के मुताबिक, अगर एपीआई प्रॉडक्ट में कोटा इंटरवल को "मिनट" पर सेट किया गया है, तो Edge माइक्रोगेटवे, हर 500 अनुरोध या पांच सेकंड के बाद, जो भी पहले हो, कोटा की मौजूदा संख्या पाने के लिए Edge के साथ सिंक होगा. ज़्यादा जानकारी के लिए, यह समझना कि कोटा कैसे गिना जाता है देखें.

समय की इकाइयों में ये शामिल हैं: minute, hour, day, week, month, और default.

isHTTPStatusTooManyRequestEnabled

यह नीति, कोटा प्लगिन को कॉन्फ़िगर करती है, ताकि कोटा का उल्लंघन होने पर, स्थिति 403 के बजाय एचटीटीपी 429 रिस्पॉन्स स्टेटस दिखाया जा सके.

डिफ़ॉल्ट: false. डिफ़ॉल्ट रूप से या अगर फ़्लैग false पर सेट है, तो कोटा तय सीमा से ज़्यादा होने पर एचटीटीपी स्टेटस 403 दिखाता है.

अगर फ़्लैग को true पर सेट किया गया है, तो तय सीमा से ज़्यादा होने पर कोटा, एचटीटीपी स्टेटस 429 दिखाता है.

एचटीटीपी के रिटर्न की डिफ़ॉल्ट स्थिति को 429 में बदलने के लिए, यह कॉन्फ़िगरेशन इस्तेमाल करें:

edgemicro:
...
quotas:
  isHTTPStatusTooManyRequestEnabled: true
...
failOpen अगर इस सुविधा को चालू किया जाता है, तो कोटा प्रोसेसिंग में कोई गड़बड़ी होती है या Edge से किया गया "कोटा लागू" अनुरोध, रिमोट कोटा काउंटर को अपडेट नहीं कर पाता है, तो कोटा को सिर्फ़ स्थानीय लोगों की गिनती के हिसाब से प्रोसेस किया जाएगा. ऐसा तब तक होगा, जब तक कि रिमोट कोटा सिंक नहीं हो जाता. इन दोनों मामलों में, अनुरोध ऑब्जेक्ट में एक quota-failed-open फ़्लैग सेट किया जाता है.

कोटा "फ़ेल ओपन" सुविधा चालू करने के लिए, यह कॉन्फ़िगरेशन सेट करें:

edgemicro:
...
quotas:
  failOpen: true
...
useDebugMpId कोटा रिस्पॉन्स में एमपी (मैसेज प्रोसेसर) आईडी को लॉग करने की सुविधा चालू करने के लिए, इस फ़्लैग को true पर सेट करें.

इस सुविधा का इस्तेमाल करने के लिए, आपको यह कॉन्फ़िगरेशन सेट करना होगा:

edgemicro:
...
quotas:
  useDebugMpId: true
...

जब useDebugMpId सेट हो जाएगा, तब Edge से मिले कोटा के रिस्पॉन्स में एमपी आईडी शामिल होगा और इसे Edge माइक्रोगेटवे से लॉग किया जाएगा. उदाहरण के लिए:

{
    "allowed": 20,
    "used": 3,
    "exceeded": 0,
    "available": 17,
    "expiryTime": 1570748640000,
    "timestamp": 1570748580323,
    "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
}
useRedis अगर इस नीति को true पर सेट किया जाता है, तो प्लगिन, कोटा बैकिंग स्टोर के लिए Redis का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, कोटा के लिए Redis बैकिंग स्टोर का इस्तेमाल करना देखें.

कोटे की गिनती करने के तरीके को समझना

अगर कोटा इंटरवल "मिनट" पर सेट है, तो माइक्रोगेटवे डिफ़ॉल्ट रूप से अपने कोटा काउंटर को Apigee Edge के साथ हर पांच सेकंड में सिंक करता है. अगर इंटरवल को "मिनट" से ज़्यादा के लेवल पर सेट किया गया है, जैसे कि "हफ़्ता" या "महीना", तो रीफ़्रेश होने की डिफ़ॉल्ट अवधि एक मिनट है.

ध्यान रखें कि आपको उन एपीआई प्रॉडक्ट में कोटा इंटरवल तय करना होता है जिन्हें Apigee Edge पर बनाया गया है. कोटा इंटरवल से यह तय होता है कि एक मिनट, घंटे, दिन, हफ़्ते या महीने के लिए कितने अनुरोध स्वीकार किए जा सकते हैं. उदाहरण के लिए, हो सकता है कि प्रॉडक्ट A का कोटा इंटरवल 100 अनुरोध प्रति मिनट हो और प्रॉडक्ट B का कोटा इंटरवल 10,000 अनुरोध प्रति घंटे हो.

Edge माइक्रोगेटवे quota प्लगिन का YAML कॉन्फ़िगरेशन, कोटा इंटरवल को सेट नहीं करता है. इसके बजाय, यह उस फ़्रीक्वेंसी में बदलाव करने का तरीका देता है जिस पर स्थानीय Edge माइक्रोगेटवे इंस्टेंस, Apigee Edge के साथ अपने कोटा की गिनती को सिंक करता है.

उदाहरण के लिए, मान लें कि Apigee Edge में तीन एपीआई प्रॉडक्ट तय किए गए हैं, जिनके लिए ये कोटा इंटरवल दिए गए हैं:

  • प्रॉडक्ट A के पास प्रति मिनट 100 अनुरोध का कोटा है
  • प्रॉडक्ट B के लिए, हर घंटे 5,000 अनुरोध किए जा सकते हैं
  • प्रॉडक्ट C के पास हर महीने 10,00,000 अनुरोध का कोटा है

इन कोटा सेटिंग को ध्यान में रखते हुए, Edge माइक्रोगेटवे quota प्लगिन को कैसे कॉन्फ़िगर किया जाना चाहिए? सबसे सही तरीका यह है कि एज माइक्रोगेटवे को सिंक इंटरवल के साथ कॉन्फ़िगर किया जाए. ये एपीआई प्रॉडक्ट में तय किए गए कोटा इंटरवल से कम होते हैं. उदाहरण के लिए:

quotas:
    bufferSize:
      hour: 2000
      minute: 50
      month: 1
      default: 10000

यह कॉन्फ़िगरेशन, एपीआई प्रॉडक्ट के लिए सिंक के इन इंटरवल के बारे में बताता है. इन प्रॉडक्ट के बारे में पहले बताया गया है:

  • प्रॉडक्ट A "मिनट" के इंटरवल पर सेट है. Edge माइक्रोगेटवे हर 50वें अनुरोध या पांच सेकंड के बाद, दोनों में से जो भी पहले हो, उसे Edge से सिंक कर दिया जाएगा.
  • प्रॉडक्ट B "घंटे" के इंटरवल पर सेट है. Edge माइक्रोगेटवे हर 2,000वें अनुरोध या एक मिनट के बाद, दोनों में से जो भी पहले हो, उसे Edge से सिंक कर दिया जाएगा.
  • प्रॉडक्ट C "महीने" के इंटरवल पर सेट है. Edge माइक्रोगेटवे हर अनुरोध के बाद या जो भी पहले हो, उसके बाद Edge से सिंक हो जाएगा.

जब भी कोई माइक्रोगेटवे इंस्टेंस Edge के साथ सिंक होता है, तो माइक्रोगेटवे के कोटा की संख्या को वापस मिले कोटा की संख्या पर सेट कर दिया जाता है.

bufferSize की सेटिंग की मदद से, आपको यह बदलाव करने की अनुमति मिलती है कि कोटा काउंटर को Edge के साथ कैसे सिंक किया जाए. ज़्यादा ट्रैफ़िक की स्थिति में, bufferSize की सेटिंग, बफ़र काउंटर को समय पर आधारित डिफ़ॉल्ट सिंक के ट्रिगर होने से पहले सिंक होने की अनुमति देती हैं.

कोटा के दायरे को समझना

कोटा की संख्या का दायरा, किसी संगठन के एनवायरमेंट के हिसाब से तय होता है. इस स्कोप को हासिल करने के लिए, Edge माइक्रोगेटवे एक कोटा आइडेंटिफ़ायर बनाता है जो "org + env + appName + productName" से मिलकर बनता है.

कोटा के लिए Redis बैकिंग स्टोर का इस्तेमाल करना

अगर आपको कोटा के लिए Redis बैकिंग स्टोर इस्तेमाल करना है, तो उसी कॉन्फ़िगरेशन का इस्तेमाल करें जिसे सिंक करने की सुविधा के लिए इस्तेमाल किया गया था. कोटा स्टोरेज के लिए Redis का इस्तेमाल करने के लिए, यह बुनियादी कॉन्फ़िगरेशन नीचे दिया गया है:

edgemicro:
  redisHost: localhost
  redisPort: 6379
  redisDb: 2
  redisPassword: codemaster

quotas:
  useRedis: true
edgemicro.redis* पैरामीटर के बारे में जानकारी पाने के लिए, सिंकर का इस्तेमाल करना देखें.

कोटा प्लगिन की जांच करना

कोटा पार हो जाने पर, क्लाइंट को एक एचटीटीपी 403 स्टेटस दिखेगा. साथ ही, यह मैसेज भी दिखेगा:

{"error": "exceeded quota"}

अचानक होने वाली बढ़ोतरी (अरेस्ट अरेस्ट) और कोटे में क्या अंतर है?

काम के लिए सही टूल चुनने की ज़रूरत होती है. कोटा की नीतियों से यह कॉन्फ़िगर किया जाता है कि क्लाइंट ऐप्लिकेशन को ऐसे कितने अनुरोध मैसेज सबमिट करने की अनुमति है जिन्हें एक घंटे, दिन, हफ़्ते या महीने के दौरान एपीआई पर सबमिट किया जा सकता है. कोटा की नीति, क्लाइंट ऐप्लिकेशन के लिए इस्तेमाल की सीमा लागू करती है. इसके लिए, ऐसे डिस्ट्रिब्यूटेड काउंटर का इस्तेमाल किया जाता है जो मिलने वाले अनुरोधों का पालन करता है.

डेवलपर और पार्टनर के साथ कारोबार के समझौते या सेवा स्तर समझौता (एसएलए) लागू करने के लिए, ऑपरेशनल ट्रैफ़िक मैनेजमेंट के बजाय कोटा नीति का इस्तेमाल करें. उदाहरण के लिए, कोटा का इस्तेमाल मुफ़्त सेवा के लिए ट्रैफ़िक को सीमित करने के लिए किया जा सकता है. साथ ही, पैसे चुकाने वाले ग्राहकों को पूरा ऐक्सेस देने के लिए, इसका इस्तेमाल किया जा सकता है.

एपीआई ट्रैफ़िक में अचानक अचानक होने वाली बढ़ोतरी से बचने के लिए, स्पाइक अरेस्ट सुविधा का इस्तेमाल करें. आम तौर पर, डीडीओएस (DDoS) या नुकसान पहुंचाने वाले अन्य हमलों का पता लगाने के लिए, स्पाइक अरेस्ट का इस्तेमाल किया जाता है.