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

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

Edge Microgateway का वर्शन 3.1.x

ऑडियंस

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

Edge Microgateway का प्लग इन क्या होता है?

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

Edge Microgateway के साथ बंडल किए गए पहले से मौजूद प्लग इन

Edge Microgateway को इंस्टॉल करने के दौरान, पहले से मौजूद कई प्लग इन उपलब्ध कराए जाते हैं. इनमें शामिल हैं:

प्लग्इन डिफ़ॉल्ट रूप से चालू ब्यौरा
analytics हां Edge Microgateway से Apigee Edge को Analytics का डेटा भेजता है.
oauth हां Edge Microgateway में OAuth टोकन और एपीआई पासकोड की पुष्टि करने की सुविधा जोड़ता है. ज़्यादा जानकारी के लिए, Setting up and configuring Edge Microgateway लेख पढ़ें.
quota नहीं Edge Microgateway को किए जाने वाले अनुरोधों पर कोटा लागू करता है. कोटा को सेव और मैनेज करने के लिए, Apigee Edge का इस्तेमाल करता है ज़्यादा जानकारी के लिए, कोटा प्लग इन का इस्तेमाल करना लेख पढ़ें.
spikearrest नहीं यह प्लग इन, ट्रैफ़िक में अचानक होने वाली बढ़ोतरी और DoS हमलों से सुरक्षा करता है. ज़्यादा जानकारी के लिए, स्पाइक अरेस्ट प्लग इन का इस्तेमाल करना लेख पढ़ें.
header-uppercase नहीं यह एक सैंपल प्रॉक्सी है, जिसमें टिप्पणी की गई है. इसे डेवलपर के लिए एक गाइड के तौर पर बनाया गया है, ताकि वे कस्टम प्लग इन लिख सकें. ज़्यादा जानकारी के लिए, Edge Microgateway का सैंपल प्लग इन लेख पढ़ें.
accumulate-request नहीं यह प्लग इन, अनुरोध के डेटा को एक ऑब्जेक्ट में इकट्ठा करता है. इसके बाद, डेटा को प्लग इन चेन में मौजूद अगले हैंडलर को पास करता है. यह प्लग इन, ट्रांसफ़ॉर्म प्लग इन लिखने के लिए काम का है. इन प्लग इन को, इकट्ठा किए गए अनुरोध के कॉन्टेंट के एक ऑब्जेक्ट पर काम करना होता है.
accumulate-response नहीं यह प्लग इन, जवाब के डेटा को एक ऑब्जेक्ट में इकट्ठा करता है. इसके बाद, डेटा को प्लग इन चेन में मौजूद अगले हैंडलर को पास करता है. यह प्लग इन, ट्रांसफ़ॉर्म प्लग इन लिखने के लिए काम का है. इन प्लग इन को, इकट्ठा किए गए जवाब के कॉन्टेंट के एक ऑब्जेक्ट पर काम करना होता है.
transform-uppercase नहीं यह प्लग इन, अनुरोध या जवाब के डेटा को ट्रांसफ़ॉर्म करता है. यह प्लग इन, ट्रांसफ़ॉर्म प्लग इन को लागू करने का सबसे सही तरीका दिखाता है इस प्लग इन का उदाहरण, डेटा को सामान्य तरीके से ट्रांसफ़ॉर्म करता है जैसे, अनुरोध या जवाब के डेटा को अपरकेस में बदलता है. हालांकि, इसे XML से JSON में बदलने जैसे अन्य तरह के ट्रांसफ़ॉर्मेशन करने के लिए भी आसानी से अडैप्ट किया जा सकता है.
json2xml नहीं यह प्लग इन, accept या content-type हेडर के आधार पर, अनुरोध या जवाब के डेटा को ट्रांसफ़ॉर्म करता है. ज़्यादा जानकारी के लिए, GitHub पर प्लग इन का दस्तावेज़ देखें.
quota-memory नहीं यह प्लग इन, Edge Microgateway को किए जाने वाले अनुरोधों पर कोटा लागू करता है. यह प्लग इन, कोटा को लोकल मेमोरी में सेव और मैनेज करता है.
healthcheck नहीं यह प्लग इन, Edge Microgateway की प्रोसेस के बारे में जानकारी देता है. जैसे, मेमोरी का इस्तेमाल, सीपीयू का इस्तेमाल वगैरह. इस प्लग इन का इस्तेमाल करने के लिए, अपने Edge Microgateway इंस्टेंस पर यूआरएल /healthcheck को कॉल करें. यह प्लग इन, एक उदाहरण के तौर पर दिया गया है. इसका इस्तेमाल करके, हेल्थ चेक करने वाला अपना प्लग इन लागू किया जा सकता है.

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

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

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

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

प्लग्इन जोड़ने और उन्हें कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. Edge Microgateway को बंद करें.
  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

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

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

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

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

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

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

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

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

रनटाइम स्पाइक अरेस्ट का व्यवहार, आपकी उम्मीद के मुताबिक नहीं होता. ऐसा इसलिए, क्योंकि इसमें लिटरल हर मिनट या हर सेकंड के हिसाब से तय की गई वैल्यू के हिसाब से काम नहीं होता.

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

spikearrest:
   timeUnit: minute
   allow: 30

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

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

हर मिनट के हिसाब से दरें

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

60 सेकंड (एक मिनट) / 30 = दो सेकंड के इंटरवल. इसका मतलब है कि हर दो सेकंड में एक अनुरोध किया जा सकता है. दो सेकंड के अंदर दूसरा अनुरोध करने पर, गड़बड़ी दिखेगी. इसके अलावा, एक मिनट के अंदर 31वां अनुरोध करने पर भी गड़बड़ी दिखेगी.

हर सेकंड के हिसाब से दरें

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

1000 मिलीसेकंड (एक सेकंड) / 10 = 100 मिलीसेकंड के इंटरवल. इसका मतलब है कि हर 100 मिलीसेकंड में एक अनुरोध किया जा सकता है . 100 मिलीसेकंड के अंदर दूसरा अनुरोध करने पर, गड़बड़ी दिखेगी. इसके अलावा, एक सेकंड के अंदर 11वां अनुरोध करने पर भी गड़बड़ी दिखेगी.

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

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

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

बफ़र जोड़ना

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

अगर Edge Micro की एक से ज़्यादा प्रोसेस चल रही हैं

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{"error": "exceeded quota"}

स्पाइक अरेस्ट और कोटा में क्या अंतर है?

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

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

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