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

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

Edge Microgateway v. 3.3.x

ऑडियंस

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

Edge Microgateway प्लगिन क्या है?

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

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

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

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

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

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

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

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

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

  1. एज माइक्रोगेटवे को बंद करें.
  2. Edge Microgateway कॉन्फ़िगरेशन फ़ाइल खोलें. विवरण के लिए, देखें विकल्पों के लिए कॉन्फ़िगरेशन में बदलाव करना.
  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 Microgateway को रीस्टार्ट या फिर से लोड करें.

प्लग-इन से जुड़े कॉन्फ़िगरेशन

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

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

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

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

गिरफ़्तारी की संख्या में अचानक बढ़ोतरी कैसे होती है?

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

रनटाइम के दौरान ज़्यादा लोगों की गिरफ़्तारी से जुड़ी जानकारी, डालें.

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

spikearrest:
   timeUnit: minute
   allow: 30

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

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

हर मिनट के लिए तय किए गए किराये

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

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

प्रति-सेकंड दरें

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

1000 मिलीसेकंड (1 सेकंड) / 10 = 100 मिलीसेकंड या करीब एक अनुरोध की अनुमति है हर 100 मिलीसेकंड में . 100 मि॰से॰ के अंदर किया गया दूसरा अनुरोध पूरा नहीं हो पाएगा. साथ ही, एक सेकंड विफल हो जाएगा.

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

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

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

बफ़र जोड़ना

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

अगर एक से ज़्यादा Edge Micro इस्तेमाल किया जा रहा है प्रक्रियाएं

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

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

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

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

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

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

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

  1. अपने संगठन के Apigee Edge खाते में लॉग इन करें.
  2. Edge के यूज़र इंटरफ़ेस (यूआई) में, माइक्रोगेटवे-अवेयर प्रॉक्सी से जुड़े प्रॉडक्ट को खोलें आप कोटा लागू करना चाहते हैं.
    1. यूज़र इंटरफ़ेस (यूआई) में, 'पब्लिश करें' मेन्यू से प्रॉडक्ट चुनें.
    2. एपीआई वाला वह प्रॉडक्ट खोलें जिस पर कोटा लागू करना है.
    3. बदलाव करें पर क्लिक करें.
    4. कोटा फ़ील्ड में, कोटा इंटरवल तय करें. उदाहरण के लिए, इतने अनुरोधों की संख्या एक मिनट. इसके अलावा, हर दो घंटे में 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 Microgateway को कितनी बार सेट किया जा सकता है यह सुविधा, Apigee Edge के साथ कोटा की संख्या को सिंक करती है. समझने में bufferSize, कॉन्फ़िगरेशन के ये उदाहरण देखें:

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

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

अनुमति वाला समय यूनिट में ये शामिल हैं: minute, hour, day, week, month, और default.

isHTTPStatusTooManyRequestEnabled

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

डिफ़ॉल्ट: 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 Microgateway के ज़रिए लॉग किया जाएगा. उदाहरण के लिए:

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

यह समझना कि कोटा की गिनती कैसे की जाती है

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

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

The Edge Microgateway quota प्लगिन का YAML कॉन्फ़िगरेशन, कोटा सेट नहीं करता है interval; इससे लोकल एज माइक्रोगेटवे की फ़्रीक्वेंसी को अडजस्ट किया जा सकता है इंस्टेंस अपने कोटा को सिंक करता है Apigee Edge के साथ गिने जाते हैं.

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

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

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

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

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

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

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

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

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

कोटा की संख्या किसी संगठन के एनवायरमेंट के दायरे में आती है. यह लक्ष्य हासिल करने के लिए, Edge Microgateway एक कोटा आइडेंटिफ़ायर बनाता है जो "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"}

दोनों में क्या अंतर है के बीच क्या अंतर है?

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

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

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