आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
Edge Microgateway v. 3.1.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
प्लगिन जोड़ना और उन्हें कॉन्फ़िगर करना
प्लग इन जोड़ने और कॉन्फ़िगर करने के लिए इस पैटर्न का पालन करें:
- एज माइक्रोगेटवे को बंद करें.
- Edge Microgateway कॉन्फ़िगरेशन फ़ाइल खोलें. विवरण के लिए, देखें विकल्पों के लिए कॉन्फ़िगरेशन में बदलाव करना.
- कॉन्फ़िगरेशन फ़ाइल के
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
- प्लग इन कॉन्फ़िगर करें. कुछ प्लगिन में वैकल्पिक पैरामीटर होते हैं, जिन्हें
कॉन्फ़िगरेशन फ़ाइल है. उदाहरण के लिए, ज़्यादा लोगों की गिरफ़्तारी को कॉन्फ़िगर करने के लिए, यह छंद जोड़ें
प्लग इन. स्पाइक अरेस्ट प्लग इन का इस्तेमाल करना देखें
हमारा वीडियो देखें.
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
- फ़ाइल सेव करें.
- आपने जिस कॉन्फ़िगरेशन फ़ाइल में बदलाव किया है उसके हिसाब से, 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 कॉल पर लागू होगा.
- अपने संगठन के Apigee Edge खाते में लॉग इन करें.
- Edge के यूज़र इंटरफ़ेस (यूआई) में, माइक्रोगेटवे-अवेयर प्रॉक्सी से जुड़े प्रॉडक्ट को खोलें
आप कोटा लागू करना चाहते हैं.
- यूज़र इंटरफ़ेस (यूआई) में, 'पब्लिश करें' मेन्यू से प्रॉडक्ट चुनें.
- एपीआई वाला वह प्रॉडक्ट खोलें जिस पर कोटा लागू करना है.
- बदलाव करें पर क्लिक करें.
- कोटा फ़ील्ड में, कोटा इंटरवल तय करें. उदाहरण के लिए, इतने अनुरोधों की संख्या
एक मिनट. इसके अलावा, हर दो घंटे में 50,000 अनुरोध.
- सेव करें पर क्लिक करें.
- पक्का करें कि प्रॉडक्ट को डेवलपर ऐप्लिकेशन में जोड़ा गया हो. बनाने के लिए आपको इस ऐप्लिकेशन से कुंजियों की ज़रूरत होगी पुष्टि किए गए एपीआई कॉल.
कोटा के लिए सैंपल कॉन्फ़िगरेशन
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 ...
{ "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"}
दोनों में क्या अंतर है के बीच क्या अंतर है?
इस काम के लिए सही टूल चुनना बहुत ज़रूरी है. कोटा से जुड़ी नीतियां कॉन्फ़िगर की गईं अनुरोध वाले मैसेज की वह संख्या जिन्हें क्लाइंट ऐप्लिकेशन, कोर्स के दौरान एपीआई को सबमिट कर सकता है घंटे, दिन, हफ़्ते या महीने. कोटा नीति, क्लाइंट ऐप्लिकेशन के इस्तेमाल की सीमाएं इनके लिए लागू करती हैं: डिस्ट्रिब्यूटेड काउंटर बनाए रखना. इस काउंटर का इस्तेमाल, आने वाले अनुरोधों का मिलान करने के लिए किया जाता है.
डेवलपर और पार्टनर के साथ कारोबारी अनुबंध या सेवा स्तर समझौते (एसएलए) लागू करने के लिए, कोटा नीति का इस्तेमाल करें ट्रैफ़िक मैनेजमेंट के लिए ज़्यादा स्टोरेज मिलता है. उदाहरण के लिए, एक कोटा का उपयोग यह मुफ़्त सेवा उपलब्ध कराने के साथ-साथ, पैसे देकर सेवाएं इस्तेमाल करने वाले ग्राहकों को पूरा ऐक्सेस भी देती है.
एपीआई ट्रैफ़िक में अचानक हुई बढ़ोतरी से बचने के लिए, स्पाइक अरेस्ट का इस्तेमाल करें. आम तौर पर, ज़्यादा तेज़ी से गिरफ़्तारी की दर संभावित डीडीओएस या दूसरे नुकसान पहुंचाने वाले हमलों को रोकने के लिए इस्तेमाल किया जाता है.