Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
Edge Microgateway v. 2.5.x
इस विषय में, Edge माइक्रोगेटवे को मैनेज और कॉन्फ़िगर करने के तरीके के बारे में बताया गया है.
इंटरनेट कनेक्शन होने पर, Edge माइक्रोगेटवे को अपग्रेड करना
- Edge माइक्रोगेटवे के नए वर्शन पर अपग्रेड करने के लिए, नीचे दिए गए
npm
निर्देश का इस्तेमाल करें:npm upgrade edgemicro -g
Edge माइक्रोगेटवे के किसी खास वर्शन पर अपग्रेड करने के लिए, आपको अपग्रेड कमांड में वर्शन संख्या देनी होगी. अगर वर्शन नंबर नहीं दिया जाता है, तो नया वर्शन इंस्टॉल कर दिया जाएगा. उदाहरण के लिए, वर्शन 2.5.26 पर अपग्रेड करने के लिए, इस कमांड का इस्तेमाल करें:
npm upgrade edgemicro@2.5.26 -g
- वर्शन नंबर देखें। उदाहरण के लिए, अगर आपने वर्शन 2.5.26 इंस्टॉल किया है:
edgemicro --version current nodejs version is v8.9.0 current edgemicro version is 2.5.26
- आखिर में, edgemicro-auth प्रॉक्सी के सबसे नए वर्शन में अपग्रेड करें:
edgemicro upgradeauth -o org_name -e env_name -u username
कॉन्फ़िगरेशन में बदलाव करना
आपको जिन कॉन्फ़िगरेशन फ़ाइलों की जानकारी होनी चाहिए, उनमें ये शामिल हैं:
- सिस्टम की डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
- हाल ही में शुरू किए गए Edge माइक्रोगेटवे इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
- चल रहे इंस्टेंस के लिए डाइनैमिक कॉन्फ़िगरेशन फ़ाइल
इस सेक्शन में, इन फ़ाइलों के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि इनमें बदलाव करने के बारे में आपको क्या पता होना चाहिए.
सिस्टम की डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
Edge माइक्रोगेटवे को इंस्टॉल करने पर, एक डिफ़ॉल्ट सिस्टम कॉन्फ़िगरेशन फ़ाइल यहां दिखती है:
prefix/lib/node_modules/edgemicro/config/default.yaml
जहां prefix, npm
प्रीफ़िक्स डायरेक्ट्री है. अगर यह डायरेक्ट्री नहीं मिल रही है, तो देखें कि
Edge माइक्रोगेटवे कहां इंस्टॉल है.
सिस्टम कॉन्फ़िगरेशन फ़ाइल को बदलने पर, आपको Edge माइक्रोगेटवे को फिर से शुरू करना, उसे फिर से कॉन्फ़िगर करना, और रीस्टार्ट करना होगा:
edgemicro initedgemicro configure [params]
edgemicro start [params]
हाल ही में शुरू किए गए Edge माइक्रोगेटवे इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
edgemicro init
को चलाने पर, सिस्टम कॉन्फ़िगरेशन फ़ाइल (ऊपर बताई गई
) default.yaml
को ~/.edgemicro
डायरेक्ट्री में रखा जाता है.
अगर ~/.edgemicro
में कॉन्फ़िगरेशन फ़ाइल बदली जाती है, तो आपको Edge माइक्रोगेटवे को फिर से कॉन्फ़िगर और रीस्टार्ट करना होगा:
edgemicro stopedgemicro configure [params]
edgemicro start [params]
चल रहे इंस्टेंस के लिए डाइनैमिक कॉन्फ़िगरेशन फ़ाइल
edgemicro configure [params]
चलाने पर, ~/.edgemicro
में एक डाइनैमिक कॉन्फ़िगरेशन फ़ाइल बनती है. फ़ाइल को इस पैटर्न के मुताबिक
नाम दिया गया है: org-env-config.yaml
. इसमें org और
env आपके Apigee Edge संगठन और एनवायरमेंट के नाम हैं. इस फ़ाइल का इस्तेमाल कॉन्फ़िगरेशन में बदलाव करने के लिए किया जा सकता है.
इसके बाद, ज़ीरो-डाउनटाइम के साथ इन्हें फिर से लोड किया जा सकता है. उदाहरण के लिए, किसी प्लगिन को जोड़ने और कॉन्फ़िगर करने पर,
कॉन्फ़िगरेशन को फिर से लोड किया जा सकता है. ऐसा करने से, कोई डाउनटाइम नहीं होगा. इसके बारे में यहां बताया गया है.
अगर एज माइक्रोगेटवे चालू है (शून्य से डाउनटाइम का विकल्प):
- Edge माइक्रोगेटवे कॉन्फ़िगरेशन को फिर से लोड करें:
edgemicro reload -o org_name -e env_name -k key -s secret
जगह:
- आपके Edge संगठन का नाम org_name है. इसके लिए, ज़रूरी है कि आप संगठन के एडमिन हों.
- env_name आपके संगठन का एक एनवायरमेंट है. जैसे, "test" या "prod".
- key कुंजी, कॉन्फ़िगर करने का निर्देश मिलने पर पहले मिलती है.
- secret कुंजी, कॉन्फ़िगर करने का निर्देश मिलने पर पहले मिलती है.
उदाहरण के लिए
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
अगर Edge माइक्रोगेटवे बंद है, तो:
- एज माइक्रोगेटवे को रीस्टार्ट करें:
edgemicro start -o org_name -e env_name -k key -s secret
जगह:
- आपके Edge संगठन का नाम org_name है. इसके लिए, ज़रूरी है कि आप संगठन के एडमिन हों.
- env_name आपके संगठन का एक एनवायरमेंट है. जैसे, "test" या "prod".
- key कुंजी, कॉन्फ़िगर करने का निर्देश मिलने पर पहले मिलती है.
- secret कुंजी, कॉन्फ़िगर करने का निर्देश मिलने पर पहले मिलती है.
उदाहरण के लिए:
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
कॉन्फ़िगरेशन फ़ाइल का उदाहरण यहां दिया गया है. कॉन्फ़िगरेशन फ़ाइल की सेटिंग के बारे में जानने के लिए, Edge Microgateway कॉन्फ़िगरेशन का रेफ़रंस देखें.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
एनवायरमेंट वैरिएबल सेट करना
कमांड-लाइन इंटरफ़ेस कमांड, जिन्हें आपके Edge संगठन और एनवायरमेंट के लिए वैल्यू की ज़रूरत होती है. साथ ही, Edge माइक्रोगेटवे को शुरू करने के लिए ज़रूरी कुंजी और सीक्रेट को इन एनवायरमेंट वैरिएबल में सेव किया जा सकता है:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
इन वैरिएबल को सेट करना ज़रूरी नहीं है. अगर आपने इन्हें सेट किया है, तो आपको एज माइक्रोगेटवे को कॉन्फ़िगर और चालू करने के लिए कमांड-लाइन इंटरफ़ेस (सीएलआई) का इस्तेमाल करते समय, उनकी वैल्यू तय करने की ज़रूरत नहीं है.
Edge माइक्रोगेटवे सर्वर पर एसएसएल को कॉन्फ़िगर करना
एसएसएल का इस्तेमाल करने के लिए, माइक्रोगेटवे सर्वर को कॉन्फ़िगर किया जा सकता है. उदाहरण के लिए, एसएसएल को कॉन्फ़िगर करने के बाद, "https" प्रोटोकॉल का इस्तेमाल करके Edge माइक्रोगेट की मदद से एपीआई को कॉल किया जा सकता है, जैसे कि:
https://localhost:8000/myapi
माइक्रोगेटवे सर्वर पर SSL को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:
- openssl सुविधा का इस्तेमाल करके या अपने पसंदीदा तरीके से एसएसएल सर्टिफ़िकेट और कुंजी जनरेट करें या पाएं.
- Edge Microgateway कॉन्फ़िगरेशन फ़ाइल में
edgemicro:ssl
एट्रिब्यूट जोड़ें. विकल्पों की पूरी सूची के लिए, नीचे दी गई टेबल देखें. उदाहरण के लिए:
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true
- एज माइक्रोगेटवे को रीस्टार्ट करें. आपने जिस कॉन्फ़िगरेशन फ़ाइल में बदलाव किया है उसके हिसाब से कॉन्फ़िगरेशन फ़ाइल में बदलाव करना लेख में बताया गया तरीका अपनाएं: डिफ़ॉल्ट फ़ाइल या रनटाइम कॉन्फ़िगरेशन फ़ाइल.
यहां एसएसएल को कॉन्फ़िगर किए गए कॉन्फ़िगरेशन फ़ाइल के edgemicro
सेक्शन का उदाहरण
दिया गया है:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
यहां इस्तेमाल किए जा सकने वाले सभी सर्वर विकल्पों की सूची दी गई है:
विकल्प | ब्यौरा |
---|---|
key |
ca.key फ़ाइल का पाथ (PEM फ़ॉर्मैट में). |
cert |
ca.cert फ़ाइल का पाथ (PEM फ़ॉर्मैट में). |
pfx |
pfx फ़ाइल का पाथ, जिसमें क्लाइंट की निजी कुंजी, सर्टिफ़िकेट, और CA सर्टिफ़िकेट
PFX फ़ॉर्मैट में हैं. |
passphrase |
इस स्ट्रिंग में निजी कुंजी या PFX के लिए लंबा पासवर्ड होता है. |
ca |
PEM फ़ॉर्मैट में भरोसेमंद सर्टिफ़िकेट की सूची वाली फ़ाइल का पाथ. |
ciphers |
इस्तेमाल करने के लिए साइफ़र के बारे में बताने वाली स्ट्रिंग, जिसे ',' से अलग किया जाता है. |
rejectUnauthorized |
सही होने पर, सर्वर सर्टिफ़िकेट की पुष्टि, दिए गए CA की सूची के हिसाब से की जाती है. अगर पुष्टि नहीं हो पाती है, तो एक गड़बड़ी दिखती है. |
secureProtocol |
इस्तेमाल करने के लिए एसएसएल का तरीका. उदाहरण के लिए, SSL को वर्शन 3 पर लागू करने के लिए SSLv3_method का इस्तेमाल करें. |
servername |
SNI (सर्वर नेम इंंडिकेशन) TLS एक्सटेंशन के लिए सर्वर का नाम. |
requestCert |
2-वे एसएसएल के लिए सही; 1-वे एसएसएल के लिए गलत |
क्लाइंट के एसएसएल/TLS विकल्पों का इस्तेमाल करना
टारगेट एंडपॉइंट से कनेक्ट करते समय, Edge माइक्रोगेटवे को TLS या एसएसएल क्लाइंट बनाने के लिए कॉन्फ़िगर किया जा सकता है. माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में, एसएसएल/TLS के विकल्प सेट करने के लिए, टारगेट एलिमेंट का इस्तेमाल करें.
इस उदाहरण में ऐसी सेटिंग दी गई हैं जो सभी होस्ट पर लागू होंगी:
edgemicro: ... targets: ssl: client: key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
इस उदाहरण में, सेटिंग सिर्फ़ तय किए गए होस्ट पर लागू की गई हैं:
edgemicro: ... targets: - host: 'myserver.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
यहां TLS का एक उदाहरण दिया गया है:
edgemicro: ... targets: - host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
यहां इस्तेमाल किए जा सकने वाले सभी क्लाइंट विकल्पों की सूची दी गई है:
विकल्प | ब्यौरा |
---|---|
pfx |
pfx फ़ाइल का पाथ, जिसमें क्लाइंट की निजी कुंजी, सर्टिफ़िकेट, और CA सर्टिफ़िकेट
PFX फ़ॉर्मैट में हैं. |
key |
ca.key फ़ाइल का पाथ (PEM फ़ॉर्मैट में). |
passphrase |
इस स्ट्रिंग में निजी कुंजी या PFX के लिए लंबा पासवर्ड होता है. |
cert |
ca.cert फ़ाइल का पाथ (PEM फ़ॉर्मैट में). |
ca |
PEM फ़ॉर्मैट में भरोसेमंद सर्टिफ़िकेट की सूची वाली फ़ाइल का पाथ. |
ciphers |
इस्तेमाल करने के लिए साइफ़र के बारे में बताने वाली स्ट्रिंग, जिसे ',' से अलग किया जाता है. |
rejectUnauthorized |
सही होने पर, सर्वर सर्टिफ़िकेट की पुष्टि, दिए गए CA की सूची के हिसाब से की जाती है. अगर पुष्टि नहीं हो पाती है, तो एक गड़बड़ी दिखती है. |
secureProtocol |
इस्तेमाल करने के लिए एसएसएल का तरीका. उदाहरण के लिए, SSL को वर्शन 3 पर लागू करने के लिए SSLv3_method का इस्तेमाल करें. |
servername |
SNI (सर्वर नेम इंंडिकेशन) TLS एक्सटेंशन के लिए सर्वर का नाम. |
Edgemicro-auth प्रॉक्सी को पसंद के मुताबिक बनाना
डिफ़ॉल्ट रूप से, Edge माइक्रोगेटवे OAuth2 की पुष्टि करने के लिए Apigee Edge पर डिप्लॉय किए गए प्रॉक्सी का इस्तेमाल करता है.
यह प्रॉक्सी सर्वर, edgemicro configure
को शुरू में डिप्लॉय करने पर ही लागू होता है. इस प्रॉक्सी के डिफ़ॉल्ट कॉन्फ़िगरेशन को बदला जा सकता है. ऐसा करके, JSON Web Token (JWT) के कस्टम दावों के लिए सहायता जोड़ी जा सकती है, टोकन के खत्म होने की अवधि को कॉन्फ़िगर किया जा सकता है, और रीफ़्रेश टोकन जनरेट किए जा सकते हैं. ज़्यादा जानकारी के लिए, GitHub में edgemicro-auth पेज देखें.
पसंद के मुताबिक पुष्टि करने वाली सेवा का इस्तेमाल करना
डिफ़ॉल्ट रूप से, Edge माइक्रोगेटवे OAuth2 की पुष्टि करने के लिए Apigee Edge पर डिप्लॉय किए गए प्रॉक्सी का इस्तेमाल करता है.
यह प्रॉक्सी सर्वर, edgemicro configure
को शुरू में डिप्लॉय करने पर ही लागू होता है. डिफ़ॉल्ट रूप से, इस प्रॉक्सी के यूआरएल को Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में इस तरह बताया जाता है:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
अगर आपको पुष्टि करने के लिए अपनी पसंद के मुताबिक किसी सेवा का इस्तेमाल करना है, तो अपनी सेवा को दिखाने के लिए कॉन्फ़िगरेशन फ़ाइल में
authUri
की वैल्यू बदलें. उदाहरण के लिए, आपके पास कोई ऐसी सेवा हो सकती है जो पहचान की पुष्टि करने के लिए LDAP का इस्तेमाल करती हो.
लॉग फ़ाइलें मैनेज करना
Edge माइक्रोगेटवे हर अनुरोध और उसके जवाब के बारे में जानकारी लॉग करता है. लॉग फ़ाइलें डीबग करने और समस्या हल करने के लिए काम की जानकारी देती हैं.
लॉग फ़ाइलें कहां सेव की जाती हैं
डिफ़ॉल्ट रूप से, लॉग फ़ाइलें /var/tmp
में सेव की जाती हैं.
डिफ़ॉल्ट लॉग फ़ाइल डायरेक्ट्री बदलने का तरीका
जिस डायरेक्ट्री में लॉग फ़ाइलें सेव की जाती हैं उसकी जानकारी, Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में दी जाती है. कॉन्फ़िगरेशन में बदलाव करना भी देखें.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
किसी दूसरी लॉग फ़ाइल डायरेक्ट्री के बारे में बताने के लिए, डायरेक्ट्री वैल्यू बदलें.
कंसोल को लॉग भेजें
लॉगिंग को कॉन्फ़िगर किया जा सकता है, ताकि लॉग की जानकारी को लॉग फ़ाइल के बजाय, स्टैंडर्ड आउटपुट में भेजा जाए. to_console
फ़्लैग को सही पर इस तरह सेट करें:
edgemicro: logging: to_console: true
इस सेटिंग को चुनने पर, लॉग को स्टैंडर्ड आउट फ़ॉर्मैट में भेजा जाएगा. फ़िलहाल, आपके पास stdout और लॉग फ़ाइल, दोनों पर लॉग नहीं भेजने की सुविधा है.
लॉगिंग लेवल सेट करने का तरीका
आपके पास ये लॉग लेवल सेट करने का विकल्प होता है: जानकारी, चेतावनी, और गड़बड़ी. जानकारी के लेवल का सुझाव दिया जाता है. यह सभी एपीआई अनुरोधों और उनके रिस्पॉन्स को लॉग करता है और यह डिफ़ॉल्ट होता है.
लॉग इंटरवल बदलने का तरीका
इन इंटरवल को Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन में बदलाव करना भी देखें.
कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट ये हैं:
- stats_log_interval: एपीआई की लॉग फ़ाइल में आंकड़ों का रिकॉर्ड लिखा जाने पर, (डिफ़ॉल्ट: 60) इंटरवल.
- rotate_interval: (डिफ़ॉल्ट: 24) इंटरवल, घंटों में, जब लॉग फ़ाइलों को घुमाया जाता है. उदाहरण के लिए:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
लॉग फ़ाइल के रखरखाव के अच्छे तरीके
समय के साथ लॉग फ़ाइल का डेटा इकट्ठा होने पर, Apigee आपको इन तरीकों का इस्तेमाल करने का सुझाव देता है:
- लॉग फ़ाइलें काफ़ी बड़ी हो सकती हैं. इसलिए, पक्का करें कि लॉग फ़ाइल डायरेक्ट्री में ज़रूरत के मुताबिक जगह हो. नीचे दिए गए सेक्शन लॉग फ़ाइलें कहां सेव की जाती हैं और डिफ़ॉल्ट लॉग फ़ाइल डायरेक्ट्री बदलने का तरीका देखें.
- हफ़्ते में कम से कम एक बार, लॉग फ़ाइलों को मिटाएं या उन्हें किसी अलग संग्रह डायरेक्ट्री में ले जाएं.
- अगर आपकी नीति में लॉग मिटाने हैं, तो पुराने लॉग को हटाने (साफ़ करने) के लिए, सीएलआई कमांड
edgemicro log -c
का इस्तेमाल किया जा सकता है.
लॉग फ़ाइल का नाम रखने के तरीके
हर Edge माइक्रोगेटवे इंस्टेंस तीन तरह की लॉग फ़ाइलें बनाता है:
- api - Edge माइक्रोगेटवे से भेजे जाने वाले सभी अनुरोधों और जवाबों को लॉग करता है. एपीआई काउंटर (आंकड़े) और गड़बड़ियां भी इस फ़ाइल में लॉग की जाती हैं.
- err - stderr को भेजे गए किसी भी डेटा को लॉग करता है.
- out - stdout को भेजे गए किसी भी आइटम को लॉग करता है.
यह नाम रखने की परंपरा है:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
उदाहरण के लिए:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
लॉग फ़ाइल के कॉन्टेंट के बारे में जानकारी
इसमें जोड़ा गया: v2.3.3
डिफ़ॉल्ट तौर पर, डेटा को लॉग करने वाली सेवा, डाउनलोड की गई प्रॉक्सी, प्रॉडक्ट, और JSON
Web Token (JWT) के JSON को हटा देती है. अगर आपको इन ऑब्जेक्ट को लॉग फ़ाइलों में आउटपुट करना है, तो एज माइक्रोगेटवे को शुरू करते समय DEBUG=*
सेट करें. उदाहरण के लिए:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
"api" लॉग फ़ाइल का कॉन्टेंट
"एपीआई" लॉग फ़ाइल में, Edge माइक्रोगेटवे के ज़रिए अनुरोधों और रिस्पॉन्स के फ़्लो की पूरी जानकारी होती है. "api" लॉग फ़ाइलों के नाम ऐसे होते हैं:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Edge माइक्रोगेटवे को किए गए हर अनुरोध के लिए, "api" लॉग फ़ाइल में चार इवेंट कैप्चर किए जाते हैं:
- क्लाइंट से मिला अनुरोध
- टारगेट के लिए किया गया अनुरोध
- टारगेट से मिलने वाला जवाब
- क्लाइंट को भेजा जाने वाला जवाब
इनमें से हर एक एंट्री को शॉर्टहैंड नोटेशन में दिखाया जाता है, ताकि लॉग फ़ाइल को और छोटा किया जा सके. यहां चार इवेंट में से हर एक के लिए चार सैंपल एंट्री दी गई हैं. लॉग फ़ाइल में, वे इस तरह दिखते हैं (लाइन नंबर सिर्फ़ दस्तावेज़ में रेफ़रंस के लिए हैं, वे लॉग फ़ाइल में नहीं दिखते).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
आइए, उन्हें एक-एक करके देखते हैं:
1. क्लाइंट से मिले अनुरोध का सैंपल:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - यूनिक्स तारीख का स्टैंप
- info - संदर्भ पर निर्भर करता है. यह लॉग लेवल के आधार पर जानकारी, चेतावनी या गड़बड़ी हो सकती है. ये आंकड़े आंकड़े के रिकॉर्ड के लिए हो सकते हैं, चेतावनियों के लिए चेतावनी दे सकते हैं या गड़बड़ियों के लिए गड़बड़ी हो सकते हैं.
- req - इवेंट की पहचान करता है. इस मामले में, क्लाइंट से अनुरोध करें.
- m - अनुरोध में इस्तेमाल की गई एचटीटीपी कार्रवाई.
- u - बेसपाथ के बाद आने वाला यूआरएल का हिस्सा.
- h - वह होस्ट और पोर्ट नंबर जहां Edge माइक्रोगेटवे सुन रहा है.
- r - वह रिमोट होस्ट और पोर्ट जहां से क्लाइंट का अनुरोध शुरू हुआ.
- i - अनुरोध का आईडी. सभी चार इवेंट एंट्री में यह आईडी शेयर किया जाएगा. हर अनुरोध को एक यूनीक अनुरोध आईडी असाइन किया जाता है. लॉग रिकॉर्ड को अनुरोध आईडी के हिसाब से जोड़ने पर, टारगेट में लगने वाले समय के बारे में अहम जानकारी मिल सकती है.
- d - Edge माइक्रोगेटवे को अनुरोध मिलने के बाद से मिलीसेकंड में अवधि. ऊपर दिए गए उदाहरण में, अनुरोध 0 के लिए टारगेट का जवाब सात मिलीसेकंड (लाइन 3) के बाद मिला था और जवाब क्लाइंट को अतिरिक्त चार मिलीसेकंड (लाइन 4) के बाद भेजा गया था. दूसरे शब्दों में, अनुरोध के लिए इंतज़ार का कुल समय 11 मिलीसेकंड था. इसमें से 7 मिलीसेकंड, टारगेट के हिसाब से लगे थे. वहीं, एज माइक्रोगेटवे ने ही 4 मिलीसेकंड लिया था.
2. टारगेट के लिए किए गए आउटगोइंग अनुरोध का सैंपल:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - यूनिक्स तारीख का स्टैंप
- info - संदर्भ पर निर्भर करता है. यह लॉग लेवल के आधार पर जानकारी, चेतावनी या गड़बड़ी हो सकती है. ये आंकड़े आंकड़े के रिकॉर्ड के लिए हो सकते हैं, चेतावनियों के लिए चेतावनी दे सकते हैं या गड़बड़ियों के लिए गड़बड़ी हो सकते हैं.
- treq - इवेंट की पहचान करता है. इस मामले में, अनुरोध को टारगेट करें.
- m - टारगेट अनुरोध में इस्तेमाल की गई एचटीटीपी कार्रवाई.
- u - बेसपाथ के बाद आने वाला यूआरएल का हिस्सा.
- h - बैकएंड टारगेट का होस्ट और पोर्ट नंबर.
- i - लॉग एंट्री का आईडी. इवेंट की सभी चार एंट्री इस आईडी को शेयर करेंगी.
3. टारगेट से मिलने वाले जवाब का सैंपल
1436403888672 info tres s=200, d=7, i=0
1436403888651 - यूनिक्स तारीख का स्टैंप
- info - संदर्भ पर निर्भर करता है. यह लॉग लेवल के आधार पर जानकारी, चेतावनी या गड़बड़ी हो सकती है. ये आंकड़े आंकड़े के रिकॉर्ड के लिए हो सकते हैं, चेतावनियों के लिए चेतावनी दे सकते हैं या गड़बड़ियों के लिए गड़बड़ी हो सकते हैं.
- tres - इवेंट की पहचान करता है. इस मामले में, जवाब को टारगेट करें.
- s - एचटीटीपी रिस्पॉन्स की स्थिति.
- d - मिलीसेकंड में अवधि. टारगेट के हिसाब से एपीआई कॉल में लगने वाला समय.
- i - लॉग एंट्री का आईडी. इवेंट की सभी चार एंट्री इस आईडी को शेयर करेंगी.
4. क्लाइंट को भेजे जाने वाले आउटगोइंग जवाब का सैंपल
1436403888676 info res s=200, d=11, i=0
1436403888651 - यूनिक्स तारीख का स्टैंप
- info - संदर्भ पर निर्भर करता है. यह लॉग लेवल के आधार पर जानकारी, चेतावनी या गड़बड़ी हो सकती है. ये आंकड़े आंकड़े के रिकॉर्ड के लिए हो सकते हैं, चेतावनियों के लिए चेतावनी दे सकते हैं या गड़बड़ियों के लिए गड़बड़ी हो सकते हैं.
- res - इवेंट की पहचान करता है. इस मामले में, क्लाइंट को जवाब दें.
- s - एचटीटीपी रिस्पॉन्स की स्थिति.
- d - मिलीसेकंड में अवधि. यह एपीआई कॉल में लगने वाला कुल समय होता है. इसमें टारगेट एपीआई को लगने वाला समय और Edge माइक्रोगेटवे में लगने वाला समय शामिल होता है.
- i - लॉग एंट्री का आईडी. इवेंट की सभी चार एंट्री इस आईडी को शेयर करेंगी.
लॉग फ़ाइल शेड्यूल
लॉग फ़ाइलें उस इंटरवल के हिसाब से रोटेट होती हैं जो rotate_interval के कॉन्फ़िगरेशन एट्रिब्यूट में बताया गया है. रोटेशन इंटरवल की समयसीमा खत्म होने तक, उसी लॉग फ़ाइल में एंट्री जोड़ी जाती रहेंगी. हालांकि, जब भी Edge माइक्रोगेटवे को रीस्टार्ट किया जाता है, तो उसे एक नया यूआईडी मिलता है और वह इस यूआईडी के साथ लॉग फ़ाइलों का एक नया सेट बनाता है. लॉग फ़ाइल के रखरखाव के अच्छे तरीके भी देखें.
गड़बड़ी के मैसेज
कुछ लॉग एंट्री में गड़बड़ी के मैसेज होंगे. गड़बड़ियां कहां और क्यों होती हैं, इसका पता लगाने में मदद के लिए, Edge Microgateway गड़बड़ी का रेफ़रंस देखें.
एज माइक्रोगेटवे कॉन्फ़िगरेशन का रेफ़रंस
कॉन्फ़िगरेशन फ़ाइल की जगह
इस सेक्शन में बताए गए कॉन्फ़िगरेशन एट्रिब्यूट, Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में मौजूद होते हैं. कॉन्फ़िगरेशन में बदलाव करना भी देखें.
Edge_config एट्रिब्यूट
इन सेटिंग का इस्तेमाल, Edge माइक्रोगेटवे इंस्टेंस और Apigee Edge के बीच इंटरैक्शन को कॉन्फ़िगर करने के लिए किया जाता है.
- bootstrap: (डिफ़ॉल्ट: कोई नहीं) Apigee Edge पर चल रही
Edge माइक्रोगेटवे की खास सेवा पर ले जाने वाला यूआरएल. Edge माइक्रोगेटवे, इस सेवा का इस्तेमाल
Apigee Edge से कम्यूनिकेट करने के लिए करता है. जब सार्वजनिक/निजी कुंजी का जोड़ा जनरेट करने के लिए निर्देश दिया जाता है,
तब यह यूआरएल दिखता है:
edgemicro genkeys
. ज़्यादा जानकारी के लिए, एज माइक्रोगेटवे को सेट अप और कॉन्फ़िगर करना देखें. - jwt_public_key: (डिफ़ॉल्ट: कोई नहीं) वह यूआरएल जो Apigee Edge पर डिप्लॉय किए गए एज माइक्रोगेटवे प्रॉक्सी पर ले जाता है. यह प्रॉक्सी, क्लाइंट को साइन किए हुए ऐक्सेस टोकन जारी करने के लिए, पुष्टि करने वाले एंडपॉइंट के तौर पर काम करता है. जब प्रॉक्सी को डिप्लॉय करने के लिए निर्देश दिया जाता है, तब यह यूआरएल दिखता है: edgemicro कॉन्फ़िगरेशन. ज़्यादा जानकारी के लिए, एज माइक्रोगेटवे को सेट अप और कॉन्फ़िगर करना देखें.
Edgeमाइक्रो एट्रिब्यूट
ये सेटिंग, Edge माइक्रोगेटवे की प्रोसेस को कॉन्फ़िगर करती हैं.
- पोर्ट: (डिफ़ॉल्ट: 8000) वह पोर्ट नंबर जिस पर Edge माइक्रोगेटवे प्रोसेस सुनती है.
- max_connections: (डिफ़ॉल्ट: -1) यह बताता है कि Edge माइक्रोगेटवे को एक साथ ज़्यादा से ज़्यादा कितने कनेक्शन मिल सकते हैं. अगर यह संख्या
पार हो जाती है, तो यह स्थिति दिखती है:
res.statusCode = 429; // Too many requests
- max_connections_hard: (डिफ़ॉल्ट: -1) कनेक्शन बंद करने से पहले, Edge माइक्रोगेटवे को एक साथ मिलने वाले अनुरोधों की ज़्यादा से ज़्यादा संख्या. इस सेटिंग का मकसद, सेवा से इनकार करने वाले हमलों को रोकना है. आम तौर पर, इसे max_कनेक्शन से बड़ी संख्या पर सेट करें.
-
लॉगिंग:
-
level: (डिफ़ॉल्ट: गड़बड़ी)
- info - एज माइक्रोगेटवे इंस्टेंस से होने वाले सभी अनुरोधों और रिस्पॉन्स को लॉग करता है.
- warn - सिर्फ़ चेतावनी के मैसेज को लॉग करता है.
- error - सिर्फ़ गड़बड़ी के मैसेज को लॉग करता है.
- direct: (डिफ़ॉल्ट: /var/tmp) वह डायरेक्ट्री, जहां लॉग फ़ाइलें सेव की जाती हैं.
- stats_log_interval: एपीआई लॉग फ़ाइल में आंकड़े लिखने के बाद, (डिफ़ॉल्ट: 60) इंटरवल.
- rotate_interval: (डिफ़ॉल्ट: 24) इंटरवल, घंटों में, जब लॉग फ़ाइलों को घुमाया जाता है.
-
level: (डिफ़ॉल्ट: गड़बड़ी)
- प्लगिन: प्लगिन, Edge माइक्रोगेटवे में फ़ंक्शन जोड़ते हैं. प्लग इन डेवलप करने के बारे में ज़्यादा जानकारी के लिए, कस्टम प्लग इन डेवलप करना देखें.
- डायरेक्ट: ./gateway डायरेक्ट्री से ./प्लगिन डायरेक्ट्री या किसी ऐब्सलूट पाथ पर जाने का मिलता-जुलता पाथ.
- क्रम: आपके Edge माइक्रोगेटवे इंस्टेंस में जोड़ने के लिए प्लग इन मॉड्यूल की सूची. मॉड्यूल उसी क्रम में काम करेंगे जिसके बारे में यहां बताया गया है.
-
डीबग: Edge माइक्रोगेटवे प्रक्रिया में रिमोट डीबगिंग जोड़ता है.
- पोर्ट: वह पोर्ट नंबर जिसे सुनना है. उदाहरण के लिए, अपना IDE डीबगर इस पोर्ट पर सुनने के लिए सेट करें.
- args: डीबग प्रोसेस के लिए तर्क. उदाहरण के लिए:
args --nolazy
- config_change_poll_interval: (डिफ़ॉल्ट: 600 सेकंड) Edge माइक्रोगेटवे समय-समय पर एक नया कॉन्फ़िगरेशन लोड करता है और कुछ भी बदलाव होने पर फिर से लोड करता है. पोल में, Edge पर किए गए सभी बदलाव (प्रॉडक्ट, माइक्रोगेटवे-अवेयर प्रॉक्सी वगैरह) में किए गए बदलावों के साथ-साथ लोकल कॉन्फ़िगरेशन फ़ाइल में किए गए बदलावों को भी शामिल किया जाता है.
- disable_config_poll_interval: (डिफ़ॉल्ट: गलत) अपने-आप बदलाव पोल की सुविधा बंद करने के लिए, true पर सेट करें.
- request_timeout: टारगेट अनुरोधों के लिए टाइम आउट सेट करता है. टाइम आउट सेकंड में सेट किया जाता है. अगर टाइम आउट हो जाता है, तो Edge माइक्रोगेटवे 504 स्टेटस कोड के साथ जवाब देता है. (v2.4.x जोड़ा गया)
हेडर एट्रिब्यूट
ये सेटिंग कॉन्फ़िगर करती हैं कि कुछ एचटीटीपी हेडर का इस्तेमाल कैसे किया जाता है.
- x-forwarded-for: (डिफ़ॉल्ट: सही) x-forwarded-for हेडर को टारगेट में भेजे जाने से रोकने के लिए, गलत पर सेट करें. ध्यान दें कि अगर अनुरोध में x-forwarded-for हेडर है, तो Edge Analytics में इसकी वैल्यू, Client-ip वैल्यू पर सेट हो जाएगी.
- x-forwarded-host: (डिफ़ॉल्ट: सही) x-forwarded-host हेडर को टारगेट में भेजे जाने से रोकने के लिए, 'गलत' पर सेट करें.
- x-request-id: (डिफ़ॉल्ट: सही) x-request-id हेडर को टारगेट में भेजने से रोकने के लिए, इसे 'गलत' पर सेट करें.
- x-response-time: (डिफ़ॉल्ट: सही) x-response-time हेडर को टारगेट को भेजे जाने से रोकने के लिए, 'गलत' पर सेट करें.
- के ज़रिए: (डिफ़ॉल्ट: सही) हेडर के ज़रिए टारगेट को भेजे जाने से रोकने के लिए 'गलत' पर सेट करें.
oauth एट्रिब्यूट
इन सेटिंग से यह कॉन्फ़िगर किया जाता है कि Edge माइक्रोगेटवे से क्लाइंट की पुष्टि कैसे की जाती है.
- allowNoAuthorization: (डिफ़ॉल्ट: गलत) अगर 'सही है' पर सेट किया जाता है, तो एपीआई कॉल को Edge माइक्रोगेटवे से पास किया जा सकता है. इसके लिए, कोई भी अनुमति देने वाले हेडर का इस्तेमाल नहीं किया जाता. 'ऑथराइज़ेशन हेडर' (डिफ़ॉल्ट) ज़रूरी बनाने के लिए, इसे 'गलत' पर सेट करें.
- allowInvalidAuthorization: (डिफ़ॉल्ट: गलत) अगर इसे 'सही है' पर सेट किया जाता है, तो एपीआई कॉल को पास किया जा सकता है. ऐसा तब किया जाता है, जब ऑथराइज़ेशन हेडर में पास किया गया टोकन अमान्य हो या उसकी समयसीमा खत्म हो गई हो. मान्य टोकन की ज़रूरत के लिए, इसे 'गलत' पर सेट करें (डिफ़ॉल्ट).
- ऑथराइज़ेशन-हेडर: (डिफ़ॉल्ट: Authorize: Bearer) यह हेडर, Edge माइक्रोगेटवे पर ऐक्सेस टोकन भेजने के लिए इस्तेमाल किया जाता है. उन मामलों में डिफ़ॉल्ट सेटिंग को बदला जा सकता है जहां टारगेट को किसी दूसरे काम के लिए, अनुमति देने वाले हेडर का इस्तेमाल करने की ज़रूरत होती है.
- api-key-header: (डिफ़ॉल्ट: x-api-key) हेडर या क्वेरी पैरामीटर का नाम Edge माइक्रोगेटवे में एपीआई पासकोड भेजने के लिए इस्तेमाल किया जाता है. एपीआई पासकोड का इस्तेमाल करना भी देखें.
- keep-Auth-हेडर: (डिफ़ॉल्ट: गलत) अगर 'सही' पर सेट किया जाता है, तो अनुरोध में भेजा गया ऑथराइज़ेशन हेडर, टारगेट को पास कर दिया जाता है (इसे सुरक्षित रखा जाता है).
- allowOAuthOnly -- अगर इस नीति को 'सही है' पर सेट किया जाता है, तो हर एपीआई में बेयरर ऐक्सेस टोकन के साथ ऑथराइज़ेशन हेडर मौजूद होना चाहिए. आपको सिर्फ़ OAuth सुरक्षा मॉडल को अनुमति देने की अनुमति मिलती है (पुराने सिस्टम के साथ काम करने की सुविधा को बनाए रखते हुए). (2.4.x जोड़ा गया)
- allowAPIKeyOnly -- अगर 'सही है' पर सेट किया जाता है, तो हर एपीआई में एपीआई पासकोड के साथ x-api-key हेडर (या पसंद के मुताबिक जगह) होना चाहिए.इससे आपको सिर्फ़ एपीआई पासकोड के सुरक्षा मॉडल को अनुमति देने की सुविधा मिलती है (पुराने सिस्टम के साथ काम करने की क्षमता को बनाए रखते हुए). (2.4.x को जोड़ा गया)
- gracePeriod -- यह पैरामीटर, आपके सिस्टम की घड़ी और JWT के ऑथराइज़ेशन टोकन में बताए गए समय (nbf) या जारी होने की तारीख (iat) के समय में मामूली अंतर की वजह से होने वाली गड़बड़ियों को रोकने में मदद करता है. इस तरह की गड़बड़ी को ठीक करने के लिए, इस पैरामीटर को सेकंड की संख्या पर सेट करें. (2.5.7 जोड़ा गया)
प्लग इन के लिए बने एट्रिब्यूट
हर प्लगिन की कॉन्फ़िगर की जा सकने वाली विशेषताओं के बारे में जानने के लिए, प्लगिन इस्तेमाल करना देखें.
प्रॉक्सी फ़िल्टर करना
आपके पास यह फ़िल्टर करने का विकल्प है कि कोई Edge माइक्रोगेटवे इंस्टेंस किस माइक्रोगेटवे-अवेयर प्रॉक्सी को प्रोसेस करेगा.
Edge माइक्रोगेटवे के शुरू होने पर, यह उससे जुड़े संगठन में मौजूद सभी माइक्रोगेटवे-अवेयर प्रॉक्सी को डाउनलोड करता है. नीचे दिए गए कॉन्फ़िगरेशन का इस्तेमाल करके यह तय करें कि माइक्रोगेटवे किस प्रॉक्सी को प्रोसेस करेगा. उदाहरण के लिए, यह कॉन्फ़िगरेशन उन प्रॉक्सी को सीमित करता है जो माइक्रोगेटवे को प्रोसेस करेंगे: edgemicro_proxy-1
, edgemicro_proxy-2
, और edgemicro_proxy-3
:
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Analytics पुश फ़्रीक्वेंसी को कॉन्फ़िगर करना
Apigee को Analytics का डेटा भेजने की फ़्रीक्वेंसी को कंट्रोल करने के लिए, इन कॉन्फ़िगरेशन पैरामीटर का इस्तेमाल करें:
- bufferSize (ज़रूरी नहीं): विश्लेषण के ऐसे रिकॉर्ड की ज़्यादा से ज़्यादा संख्या जिन्हें बफ़र सबसे पुराने रिकॉर्ड को छोड़ना शुरू करने से पहले होल्ड कर सकता है. डिफ़ॉल्ट: 10,000
- batchSize (ज़रूरी नहीं): Apigee को भेजे गए आंकड़ों के रिकॉर्ड के बैच का ज़्यादा से ज़्यादा साइज़. डिफ़ॉल्ट: 500
- flushInterval (ज़रूरी नहीं): Apigee को भेजे गए Analytics रिकॉर्ड के एक बैच के हर फ़्लश के बीच मिलीसेकंड की संख्या. डिफ़ॉल्ट: 5000
उदाहरण के लिए:
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
आंकड़ों के डेटा को मास्क करना
यहां दिया गया कॉन्फ़िगरेशन, अनुरोध के पाथ की जानकारी को Edge के Analytics में दिखने से रोकता है. अनुरोध यूआरआई और/या अनुरोध के पाथ को मास्क करने के लिए, माइक्रोगेटवे कॉन्फ़िगरेशन में नीचे दिया गया कोड जोड़ें. ध्यान दें कि यूआरआई में अनुरोध के होस्टनेम और पाथ के हिस्से शामिल होते हैं.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
Edge Analytics में एपीआई कॉल को अलग-अलग करना
किसी एपीआई पाथ को अलग-अलग करने के लिए, Analytics प्लगिन को कॉन्फ़िगर किया जा सकता है, ताकि यह Edge Analytics के डैशबोर्ड में एक अलग प्रॉक्सी के तौर पर दिखे. उदाहरण के लिए, डैशबोर्ड में हेल्थ चेक एपीआई को अलग किया जा सकता है, ताकि एपीआई प्रॉक्सी कॉल के बारे में भ्रम पैदा न हो. Analytics डैशबोर्ड में, अलग-अलग प्रॉक्सी, नाम रखने के इस पैटर्न को फ़ॉलो करते हैं:
edgemicro_proxyname-health
इस इमेज में, Analytics के डैशबोर्ड में दो अलग-अलग प्रॉक्सी दिखाई गई हैं: edgemicro_hello-health
और
edgemicro_mock-health
:
Analytics के डैशबोर्ड में, रिलेटिव और ऐब्सलूट पाथ को अलग-अलग प्रॉक्सी के तौर पर अलग-अलग करने के लिए, इन पैरामीटर का इस्तेमाल करें:
- relativePath (ज़रूरी नहीं): Analytics के डैशबोर्ड में अलग-अलग करने के लिए, मिलते-जुलते पाथ की जानकारी देता है. उदाहरण के लिए,
/healthcheck
तय करने पर,/healthcheck
पाथ वाले सभी एपीआई कॉल, डैशबोर्ड मेंedgemicro_proxyname-health
के तौर पर दिखेंगे. ध्यान दें कि यह फ़्लैग प्रॉक्सी बेस पाथ को अनदेखा करता है. बेस पाथ के साथ-साथ पूरे पाथ के हिसाब से अलग-अलग करने के लिए,proxyPath
फ़्लैग का इस्तेमाल करें. - proxyPath (ज़रूरी नहीं): यह Analytics डैशबोर्ड से अलग करने के लिए प्रॉक्सी बेस पाथ के साथ-साथ पूरे एपीआई प्रॉक्सी पाथ की जानकारी देता है. उदाहरण के लिए, अगर
/mocktarget/healthcheck
तय किया जाता है और/mocktarget
प्रॉक्सी बेस पाथ है, तो/mocktarget/healthcheck
पाथ वाले सभी एपीआई कॉल, डैशबोर्ड मेंedgemicro_proxyname-health
के तौर पर दिखेंगे.
उदाहरण के लिए, यहां दिए गए कॉन्फ़िगरेशन में, /healthcheck
वाले किसी भी एपीआई पाथ को
Analytics प्लगिन से अलग किया जाएगा. इसका मतलब है कि Analytics के डैशबोर्ड में, /foo/healthcheck
और /foo/bar/healthcheck
को edgemicro_proxyname-health
नाम से अलग-अलग प्रॉक्सी के तौर पर अलग किया जाएगा.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 relativePath: /healthcheck
नीचे दिए गए कॉन्फ़िगरेशन में, प्रॉक्सी पाथ /mocktarget/healthcheck
वाले किसी भी एपीआई को
Analytics के डैशबोर्ड में, edgemicro_proxyname-health
नाम के एक अलग प्रॉक्सी के तौर पर
अलग किया जाएगा.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 proxyPath: /mocktarget/healthcheck
कंपनी के फ़ायरवॉल के पीछे, Edge माइक्रोगेटवे सेट अप करना
इस्तेमाल किया जा सकने वाला v2.4.x
अगर Edge माइक्रोगेटवे को फ़ायरवॉल के पीछे इंस्टॉल किया गया है, तो हो सकता है कि गेटवे Apigee Edge से कनेक्ट न हो पाए. ऐसी स्थिति में, आपके पास दो विकल्प हैं:
पहला विकल्प:
पहला विकल्प यह है कि माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में, Edgemicro: प्रॉक्सी_tunnel विकल्प को 'सही' पर सेट किया जाए:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: true
proxy_tunnel proxy_tunnel होने पर, Edge माइक्रोगेटवे एक ही टीसीपी कनेक्शन पर एचटीटीपी अनुरोधों को टनल करने के लिए, एचटीटीपी proxy_tunnel तरीके का इस्तेमाल करता है. (यही तब भी लागू होती है, जब प्रॉक्सी को कॉन्फ़िगर करने के लिए एनवायरमेंट वैरिएबल के लिए TLS की सुविधा चालू हो).
दूसरा विकल्प:
दूसरा विकल्प यह है कि प्रॉक्सी तय करें और माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में प्रॉक्सी_tunnel को 'गलत' पर सेट करें. उदाहरण के लिए:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: false
इस मामले में, हर उस एचटीटीपी प्रॉक्सी के होस्ट को कंट्रोल करने के लिए इन वैरिएबल को सेट किया जा सकता है जिसका आपको इस्तेमाल करना है या कौनसे होस्ट को Edge माइक्रोगेटवे प्रॉक्सी को हैंडल नहीं करना चाहिए: HTTP_PROXY, एचटीटीपीएस_PROXY, और NO_PROXY.
NO_PROXY को उन डोमेन की कॉमा-डीलिमिटेड सूची के तौर पर सेट किया जा सकता है जिन्हें Edge माइक्रोगेटवे पर प्रॉक्सी नहीं किया जाना चाहिए. उदाहरण के लिए:
export NO_PROXY='localhost,localhost:8080'
एचटीटीपी प्रॉक्सी एंडपॉइंट Edge माइक्रोगेटवे पर HTTP_PROXY और एचटीटीपीएस_PROXY सेट करें. उदाहरण के लिए:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
इन वैरिएबल के बारे में ज़्यादा जानकारी के लिए, https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables देखें
इन्हें भी देखें
Apigee समुदाय पर कंपनी के फ़ायरवॉल के पीछे, Edge माइक्रोगेटवे को सेट अप करने का तरीका.
माइक्रोगेटवे-अवेयर प्रॉक्सी में वाइल्डकार्ड का इस्तेमाल करना
agemicro_* (माइक्रोगेटवे-अवेयर) प्रॉक्सी के बेस पाथ में, एक या उससे ज़्यादा "*" वाइल्डकार्ड का इस्तेमाल किया जा सकता है. उदाहरण के लिए,
/team/*/members के बेस पाथ की मदद से क्लाइंट,
https://[host]/team/blue/members और
https://[host]/team/green/members को कॉल कर सकते हैं. इसके लिए, आपको नई टीमों की मदद करने के लिए, नई एपीआई प्रॉक्सी
बनाने की ज़रूरत नहीं होती. ध्यान दें कि /**/
इस्तेमाल नहीं किया जा सकता.
अहम जानकारी: Apigee, बेस पाथ के पहले एलिमेंट के तौर पर वाइल्डकार्ड "*" का इस्तेमाल नहीं करता है. उदाहरण के लिए, यह काम नहीं करता: /*/
search.
रोटेटिंग JWT कुंजियां
जेडब्लयूटी जनरेट करने के कुछ समय बाद, आपको EDGE से एन्क्रिप्ट (सुरक्षित) की गई केवीएम में सेव की गई सार्वजनिक/निजी कुंजी के पेयर को बदलना पड़ सकता है. कुंजी का नया जोड़ा जनरेट करने की इस प्रोसेस को 'की रोटेशन' कहते हैं.
Edge माइक्रोगेटवे, JWT का कैसे इस्तेमाल करता है
JSON वेब टोकन (JWT), RFC7519 में बताया गया एक टोकन स्टैंडर्ड है. JWT, दावों के सेट पर हस्ताक्षर करने का एक तरीका है. JWT पाने वाले लोग इस तरीके की भरोसेमंद तरीके से पुष्टि कर सकते हैं.
Edge माइक्रोगेटवे, OAuth सुरक्षा के लिए JWT का बेयरर टोकन के तौर पर इस्तेमाल करता है. Edge माइक्रोगेटवे के लिए OAuth टोकन जनरेट करने पर, आपको एक JWT वापस मिलता है. इसके बाद, एपीआई कॉल के ऑथराइज़ेशन हेडर में JWT का इस्तेमाल किया जा सकता है. उदाहरण के लिए:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
नया JWT जनरेट करना
edgemicro token
कमांड या एपीआई का इस्तेमाल करके, Edge माइक्रोगेटवे के लिए JWT जनरेट किया जा सकता है. उदाहरण के लिए:
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
यह निर्देश, Apigee Edge से एक JWT जनरेट करने के लिए कहता है. इसके बाद, इसका इस्तेमाल एपीआई कॉल की पुष्टि करने के लिए किया जा सकेगा. -i
और -s
पैरामीटर, आपके Apigee Edge संगठन के डेवलपर ऐप्लिकेशन
के उपभोक्ता आईडी और सीक्रेट वैल्यू हैं.
इसके अलावा, मैनेजमेंट एपीआई का इस्तेमाल करके भी JWT जनरेट किया जा सकता है:
curl -i -X POST "http://org-env.apigee.net/edgemicro-auth/token" \ -H "Content-Type: application/json" \ -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }'
जगह:
- आपके Edge संगठन का नाम org है. इसके लिए, आपको संगठन का एडमिन होना ज़रूरी है.
- env आपके संगठन का एक एनवायरमेंट है. जैसे, "test" या "prod".
- आपने पहले जो डेवलपर ऐप्लिकेशन बनाया था उसमें client_id, ग्राहक आईडी है.
- आपने पहले जो डेवलपर ऐप्लिकेशन बनाया था, उसमें मौजूद उपभोक्ता की जानकारी के लिए, client_secret एक सीक्रेट है.
डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाना क्या होता है?
जेडब्लयूटी जनरेट करने के कुछ समय बाद, आपको EDGE से एन्क्रिप्ट (सुरक्षित) की गई केवीएम में सेव की गई सार्वजनिक/निजी कुंजी के पेयर को बदलना पड़ सकता है. कुंजी का नया जोड़ा जनरेट करने की इस प्रोसेस को 'की रोटेशन' कहते हैं. कुंजियों को घुमाने पर, एक नया निजी/सार्वजनिक कुंजी का जोड़ा जनरेट होता है और आपके Apigee Edge के संगठन/एनवायरमेंट के "माइक्रोगेटवे" केवीएम में सेव हो जाता है. इसके अलावा, पुरानी सार्वजनिक कुंजी को उसके ओरिजनल आईडी की वैल्यू के साथ बनाए रखा जाता है.
JWT जनरेट करने के लिए, Edge एन्क्रिप्ट (सुरक्षित) किए गए केवीएम में सेव की गई जानकारी का इस्तेमाल करता है. जब आपने शुरुआत में Edge माइक्रोगेटवे को सेट अप (कॉन्फ़िगर किया था) किया था, तब microgateway
नाम का एक केवीएम बनाया गया था और कुंजियों के साथ अपने-आप भरा गया था. KVM की कुंजियों का इस्तेमाल JWT को साइन और एन्क्रिप्ट करने के लिए किया जाता है.
केवीएम कुंजियों में ये शामिल हैं:
-
private_key - जेडब्लयूटी को साइन करने के लिए इस्तेमाल की जाने वाली सबसे नई (सबसे हाल में बनाई गई) आरएसए निजी कुंजी.
-
public_key - यह सबसे नया (सबसे हाल ही में बनाया गया) प्रमाणपत्र है, जिसका इस्तेमाल Private_key से साइन किए गए JWT की पुष्टि करने के लिए किया जाता है.
-
private_key_kid - सबसे नया (सबसे हाल में बनाया गया) निजी कुंजी आईडी. यह कुंजी आईडी Private_key वैल्यू से जुड़ा होता है और इसका इस्तेमाल कुंजी बदलने के लिए किया जाता है.
-
public_key1_kid - सबसे नई (सबसे हाल ही में बनाई गई) सार्वजनिक कुंजी आईडी. यह कुंजी, Public_key1 वैल्यू से जुड़ी होती है और इसका इस्तेमाल कुंजी बदलने के लिए किया जाता है. यह वैल्यू निजी कुंजी वाले किड के जैसी ही है.
-
public_key1 - सबसे नई (सबसे हाल में बनाई गई) सार्वजनिक कुंजी.
डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने पर, मौजूदा कुंजी की वैल्यू मैप में बदल जाती हैं और पुरानी सार्वजनिक कुंजियों को बनाए रखने के लिए नई कुंजियां जोड़ दी जाती हैं. उदाहरण के लिए:
-
public_key2_kid - पुराना सार्वजनिक कुंजी आईडी. यह कुंजी, Public_key2 वैल्यू से जुड़ी होती है और इसका इस्तेमाल कुंजी बदलने के लिए किया जाता है.
-
public_key2 - पुरानी सार्वजनिक कुंजी.
पुष्टि के लिए मौजूद JWT की पुष्टि नई सार्वजनिक कुंजी के ज़रिए की जाएगी. अगर पुष्टि नहीं हो पाती है, तो पुरानी सार्वजनिक कुंजी का इस्तेमाल तब तक किया जाएगा, जब तक इसकी समयसीमा (30 मिनट के बाद) खत्म नहीं हो जाती. इस तरह से, एपीआई ट्रैफ़िक में तुरंत रुकावट आए बिना, कुंजियों को "रोटेट" किया जा सकता है.
डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने का तरीका
इस सेक्शन में डेटा सुरक्षित करने वाली 'की' बदलने का तरीका बताया गया है.
अगर आपने Edge माइक्रोगेटवे इंस्टेंस को 2.5.2 वर्शन से पहले कॉन्फ़िगर किया है
अगर आपने EDGE माइक्रोगेटवे इंस्टेंस को 2.5.2 से पहले के वर्शन से पहले कॉन्फ़िगर किया है, तो केवीएम और पुष्टि करने की नीति को अपग्रेड करने के लिए, आपको ये दो निर्देश चलाने होंगे:
upgradekvm -o org -e env -u username
इस निर्देश के बारे में ज़्यादा जानकारी के लिए, KVM को अपग्रेड करना देखें.
अगला कमांड, edgemicro-oauth प्रॉक्सी को अपग्रेड करता है, जिसे आपके Apigee संगठन में तब डिप्लॉय किया गया था, जब आपने Edge माइक्रोगेटवे को कॉन्फ़िगर किया था. यह प्रॉक्सी, टोकन जनरेट करने के लिए ज़रूरी सेवाएं उपलब्ध कराता है.
upgradeauth -o org -e env -u username
इस निर्देश के बारे में ज़्यादा जानकारी के लिए, edgemicro-auth प्रॉक्सी को अपग्रेड करना देखें.
कुंजियां घुमाना
अपनी ~/.edgemicro/org-env-config.yaml
फ़ाइल में यह लाइन जोड़ें. यहां आपको वही संगठन और एनवायरमेंट तय करना होगा जिसे इस्तेमाल करने के लिए आपने माइक्रोगेटवे को कॉन्फ़िगर किया था:
jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'
कुंजियों को घुमाने के लिए, कुंजी बदलने का निर्देश दें. (इस निर्देश के बारे में ज़्यादा जानकारी के लिए, रोटेटिंग कुंजियां देखें.)
edgemicro rotatekey -o org -e env -u username -k kid_value
उदाहरण के लिए:
edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2 current nodejs version is v6.9.1 current edgemicro version is 2.5.7 password: Checking if private key exists in the KVM... Checking for certificate... Found Certificate Generating New key/cert pair... Extract new public key Key Rotation successfully completed!
-k
पैरामीटर से कुंजी आईडी (बच्चा) पता चलता है. इस आईडी का इस्तेमाल किसी कुंजी का मिलान करने के लिए किया जाता है.
एज माइक्रोगेटवे इस वैल्यू का इस्तेमाल कुंजी के रोटेशन के दौरान, कुंजियों के सेट में से किसी एक को चुनने के लिए करता है. ज़्यादा
जानकारी के लिए, JSON वेब कुंजी स्पेसिफ़िकेशन
का 4.5
सेक्शन देखें.
कुंजी बदलने के बाद, Edge, Edge माइक्रोगेटवे के लिए कई कुंजियां दिखाता है. यहां दिए गए उदाहरण में ध्यान दें कि हर कुंजी की एक यूनीक "बच्चे" (की आईडी) वैल्यू होती है. इसके बाद, माइक्रोगेटवे इन कुंजियों का इस्तेमाल, अनुमति देने वाले टोकन की पुष्टि करने के लिए करता है. अगर टोकन की पुष्टि नहीं हो पाती है, तो माइक्रोगेटवे यह देखता है कि कुंजी के सेट में कोई पुरानी कुंजी है या नहीं. साथ ही, वह उस कुंजी को इस्तेमाल करता है. कुंजी का फ़ॉर्मैट, JSON वेब कुंजी (JWK) है. इस फ़ॉर्मैट के बारे में आरएफ़सी 7517 में पढ़ा जा सकता है.
{ "keys": [ { "kty": "RSA", "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ", "e": "AQAB", "kid": "2" }, { "kty": "RSA", "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw", "e": "AQAB", "kid": "1" } ] }
डाउनलोड की गई प्रॉक्सी को फ़िल्टर करना
डिफ़ॉल्ट रूप से, Edge Microgateway आपके Edge संगठन में सभी प्रॉक्सी डाउनलोड करता है, जो नाम वाले प्रीफ़िक्स "edgemicro_" से शुरू होते हैं. इस डिफ़ॉल्ट प्रॉक्सी को डाउनलोड करने के लिए बदला जा सकता है, क्योंकि इनके नाम किसी पैटर्न से मेल खाते हों.
- अपनी Edge माइक्रो कॉन्फ़िगरेशन फ़ाइल खोलें:
~/.edgemicro/org-env-config.yaml
- Edge_config के तहत प्रॉक्सी पैटर्न एलिमेंट जोड़ें. उदाहरण के लिए, यहां दिया गया पैटर्न,
Edgemicro_foo, Edgemicro_Fast, और Edgemicro_first जैसे प्रॉक्सी डाउनलोड करेगा.
edge_config: … proxyPattern: edgemicro_f*
एपीआई प्रॉक्सी के बिना प्रॉडक्ट की जानकारी देना
Apigee Edge में, एक ऐसा एपीआई प्रॉडक्ट बनाया जा सकता है जिसमें कोई एपीआई प्रॉक्सी न हो. इस प्रॉडक्ट कॉन्फ़िगरेशन की मदद से, उस प्रॉडक्ट से जुड़े एपीआई पासकोड को आपके संगठन में डिप्लॉय किए गए किसी भी प्रॉक्सी सर्वर के साथ काम किया जा सकता है. वर्शन 2.5.4 के बाद से, Edge माइक्रोगेटवे इस प्रॉडक्ट कॉन्फ़िगरेशन के साथ काम करता है.
डीबग करना और समस्या का हल करना
डीबगर से कनेक्ट करना
Edge Microgateway को किसी डीबगर की मदद से चलाया जा सकता है, जैसे कि node-inspector. यह कस्टम प्लगिन की समस्या को हल करने और डीबग करने के लिए फ़ायदेमंद होता है.
- डीबग मोड में, Edge माइक्रोगेटवे को रीस्टार्ट करें. ऐसा करने के लिए,
start
कमांड की शुरुआत मेंDEBUG=*
जोड़ें. उदाहरण के लिए:DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
- डीबगर की प्रोसेस शुरू करें और इसे पोर्ट नंबर पर सुनने के लिए सेट करें, ताकि डीबग करने की प्रोसेस पूरी हो सके.
- इसके बाद, Edge माइक्रोगेटवे कोड को इस्तेमाल किया जा सकता है, ब्रेकपॉइंट सेट किया जा सकता है, एक्सप्रेशन देखे जा सकते हैं वगैरह.
आपके पास डीबग मोड से जुड़े स्टैंडर्ड Node.js फ़्लैग तय करने का विकल्प होता है. उदाहरण के लिए,
--nolazy
, एसिंक्रोनस कोड को डीबग करने में मदद करता है.
लॉग फ़ाइलों की जांच की जा रही है
अगर आपको समस्याएं आ रही हैं, तो लागू करने की प्रोसेस की जानकारी और गड़बड़ी की जानकारी के लिए, लॉग फ़ाइलों की जांच ज़रूर करें. ज़्यादा जानकारी के लिए, लॉग फ़ाइलें मैनेज करना देखें.
एपीआई पासकोड की सुरक्षा सुविधा का इस्तेमाल किया जा रहा है
एपीआई कुंजियां, Edge माइक्रोगेटवे को अनुरोध करने वाले क्लाइंट की पुष्टि करने के लिए एक आसान तरीका उपलब्ध कराती हैं. आपके पास Apigee Edge के प्रॉडक्ट से उपभोक्ता कुंजी (जिसे Client-ID भी कहा जाता है) वैल्यू को कॉपी करके, एपीआई पासकोड मिल सकता है. इस प्रॉडक्ट में, Edge माइक्रोगेटवे की पुष्टि करने वाला प्रॉक्सी शामिल होता है.
कुंजियों को कैश मेमोरी में सेव करना
एपीआई कुंजियों को बेयरर टोकन से बदल दिया जाता है. इन्हें कैश मेमोरी में सेव किया जाता है. Edge माइक्रोगेटवे पर आने वाले अनुरोधों पर Cache-Control: no-cache
हेडर को सेट करके कैश मेमोरी में सेव करने की सुविधा बंद की जा सकती है.
एपीआई पासकोड का इस्तेमाल करना
एपीआई अनुरोध में, एपीआई पासकोड को क्वेरी पैरामीटर या हेडर के तौर पर पास किया जा सकता है. डिफ़ॉल्ट रूप से, हेडर और क्वेरी पैरामीटर का नाम, दोनों x-api-key
होते हैं.
क्वेरी पैरामीटर का उदाहरण:
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
हेडर का उदाहरण:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
एपीआई पासकोड का नाम कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से, x-api-key
एपीआई पासकोड और क्वेरी पैरामीटर, दोनों के लिए इस्तेमाल किया जाने वाला नाम है.
कॉन्फ़िगरेशन फ़ाइल में बदलाव करना लेख में बताए गए तरीके के मुताबिक, कॉन्फ़िगरेशन फ़ाइल में जाकर इस डिफ़ॉल्ट सेटिंग को बदला जा सकता है. उदाहरण के लिए, नाम को apiKey में बदलने के लिए:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
इस उदाहरण में, क्वेरी पैरामीटर और हेडर, दोनों का नाम apiKey
में बदल दिया गया है. किसी भी स्थिति में
x-api-key
नाम काम नहीं करेगा. कॉन्फ़िगरेशन में बदलाव करना भी देखें.
उदाहरण के लिए:
curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
प्रॉक्सी अनुरोधों के साथ एपीआई कुंजियों का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Secure Edge Microgateway देखें.
OAuth2 टोकन सुरक्षा का इस्तेमाल किया जा रहा है
इस सेक्शन में, OAuth2 ऐक्सेस टोकन पाने और उसे रीफ़्रेश करने का तरीका बताया गया है. ऐक्सेस टोकन का इस्तेमाल, माइक्रोगेटवे से सुरक्षित एपीआई कॉल करने के लिए किया जाता है. रीफ़्रेश टोकन का इस्तेमाल नए ऐक्सेस टोकन पाने के लिए किया जाता है.
ऐक्सेस टोकन पाने का तरीका
इस सेक्शन में, ऐक्सेस टोकन पाने के लिए edgemicro-auth
प्रॉक्सी का इस्तेमाल करने का तरीका बताया गया है.
edgemicro token
सीएलआई कमांड का इस्तेमाल करके भी आपको ऐक्सेस टोकन मिल सकता है.
सीएलआई के बारे में जानकारी पाने के लिए, टोकन मैनेज करना लेख पढ़ें.
एपीआई 1
यूआरएल में अपने संगठन और पर्यावरण के नाम बदलें. साथ ही, Apigee पर डेवलपर ऐप्लिकेशन से मिले, उपभोक्ता आईडी और उपभोक्ता सीक्रेट की वैल्यू को client_id और client_secret बॉडी पैरामीटर से बदलें:
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \ -d '{"grant_type": "client_credentials", "client_id": "your_client_id", \ "client_secret": "your_client_secret"}' -H "Content-Type: application/json"
एपीआई 2
(v2.5.31 में जोड़ा गया) क्लाइंट क्रेडेंशियल को बुनियादी पुष्टि करने वाले हेडर के तौर पर औरgrant_type
को फ़ॉर्म पैरामीटर के तौर पर भेजें. इस कमांड फ़ॉर्म के बारे में आरएफ़सी 6749: OAuth 2.0 ऑथराइज़ेशन फ़्रेमवर्क में भी बताया गया है.
http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \ -d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"
सैंपल आउटपुट
एपीआई, JSON रिस्पॉन्स दिखाता है. ध्यान दें किtoken
और
access_token
प्रॉपर्टी के बीच कोई अंतर नहीं है. आपके पास इनमें से किसी भी एक का इस्तेमाल करने का विकल्प होता है.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": "108000" }
रीफ़्रेश टोकन पाने का तरीका
रीफ़्रेश टोकन पाने के लिए, edgemicro-auth
प्रॉक्सी के /token
एंडपॉइंट पर एपीआई कॉल करें. आपको password
के अनुदान टाइप का इस्तेमाल करके, यह एपीआई कॉल करना होगा. इस प्रक्रिया में नीचे दिया गया तरीका अपनाएं.
/token
API की मदद से, ऐक्सेस और रीफ़्रेश टोकन पाएं. ध्यान दें कि दान का टाइपpassword
है:curl -X POST \ https://your_organization-your_environment.apigee.net/edgemicro-auth/token \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq", "client_secret":"bUdDcFgv3nXffnU", "grant_type":"password", "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq", "password":"bUdD2FvnMsXffnU" }'
एपीआई, ऐक्सेस टोकन और रीफ़्रेश टोकन दिखाता है. रिस्पॉन्स ऐसा दिखता है:
{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": "108000", "refresh_token": "your-refresh-token", "refresh_token_expires_in": "431999", "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" }
- अब आपके पास रीफ़्रेश टोकन का इस्तेमाल करके, एक ही एपीआई के
/refresh
एंडपॉइंट को कॉल करके नया ऐक्सेस टोकन पाने का विकल्प है. उदाहरण के लिए:curl -X POST \ https://willwitman-test.apigee.net/edgemicro-auth/refresh \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq", "client_secret":"bUdDc2Fv3nMXffnU", "grant_type":"refresh_token", "refresh_token":"your-refresh-token" }'
एपीआई एक नया ऐक्सेस टोकन दिखाता है. रिस्पॉन्स ऐसा दिखता है:
{ "token": "your-new-access-token" }
हमेशा के लिए मॉनिटर करना
हमेशा के लिए एक Node.js टूल है, जो प्रोसेस के बंद होने या कोई गड़बड़ी होने पर, Node.js ऐप्लिकेशन को अपने-आप रीस्टार्ट करता है. Edge Microgateway में एक forever.json फ़ाइल होती है, जिसे कॉन्फ़िगर करके यह कंट्रोल किया जा सकता है कि Edge माइक्रोगेटवे को कितनी बार और कितने अंतराल पर रीस्टार्ट किया जाए. यह फ़ाइल, हमेशा के लिए हमेशा-मॉनिटर नाम की एक सेवा कॉन्फ़िगर करती है. यह सेवा हमेशा के लिए, प्रोग्राम के हिसाब से मैनेज करती है.
forever.json फ़ाइल को, Edge माइक्रोगेटवे रूट की इंस्टॉल डायरेक्ट्री में देखा जा सकता है. देखें कि एज माइक्रोगेटवे कहां इंस्टॉल किया गया है. कॉन्फ़िगरेशन के विकल्पों की जानकारी के लिए, हमेशा के लिए मॉनिटर करने वाला दस्तावेज़ देखें.
edgemicro forever
निर्देश में ऐसे फ़्लैग शामिल होते हैं जिनकी मदद से, forever.json
फ़ाइल (-f
फ़्लैग) की जगह की जानकारी दी जा सकती है और हमेशा के लिए निगरानी करने की प्रोसेस (-a
फ़्लैग) को शुरू या बंद किया जा सकता है. उदाहरण के लिए:
edgemicro forever -f ~/mydir/forever.json -a start
ज़्यादा जानकारी के लिए, सीएलआई रेफ़रंस में हमेशा निगरानी रखना लेख पढ़ें.
कॉन्फ़िगरेशन फ़ाइल का एंडपॉइंट तय करना
एक से ज़्यादा Edge Microgateway इंस्टेंस चलाने पर, हो सकता है कि आप एक ही जगह से उनके कॉन्फ़िगरेशन मैनेज करना चाहें. ऐसा करने के लिए, एक एचटीटीपी एंडपॉइंट तय करें जहां EDGE माइक्रो इसकी कॉन्फ़िगरेशन फ़ाइल डाउनलोड कर सके. -u फ़्लैग का इस्तेमाल करके, Edge माइक्रो को शुरू करने पर इस एंडपॉइंट की जानकारी दी जा सकती है.
उदाहरण के लिए:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
जहां mgconfig एंडपॉइंट आपकी कॉन्फ़िगरेशन फ़ाइल का कॉन्टेंट दिखाता है. यह वही फ़ाइल है जो डिफ़ॉल्ट रूप से ~/.edgemicro
में मौजूद होती है. इसका नाम रखने के लिए यह फ़ॉर्मैट इस्तेमाल किया जाता है: org-env-config.yaml
.
टीसीपी कनेक्शन के डेटा को बफ़र करने की सुविधा बंद करना
Edge माइक्रोगेटवे में इस्तेमाल किए जाने वाले टीसीपी कनेक्शन के लिए, डेटा बफ़र की सुविधा बंद करने के लिए nodelay
कॉन्फ़िगरेशन एट्रिब्यूट का इस्तेमाल करें.
डिफ़ॉल्ट टीसीपी कनेक्शन, डेटा भेजने से पहले उसे बफ़र करने के लिए Nagle एल्गोरिदम का इस्तेमाल करते हैं. nodelay
को true
पर सेट करने पर, यह व्यवहार बंद हो जाता है. हर बार socket.write()
कॉल करने पर, डेटा तुरंत बंद हो जाएगा. ज़्यादा जानकारी के लिए, Node.js
का दस्तावेज़ भी देखें.
nodelay
को चालू करने के लिए, Edge Micro कॉन्फ़िगरेशन फ़ाइल में इस तरह से बदलाव करें:
edgemicro: nodelay: true port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
स्टैंडअलोन मोड में एज माइक्रोगेटवे चल रहा है
किसी भी Apigee Edge डिपेंडेंसी से डिसकनेक्ट करके, Edge माइक्रोगेटवे को चलाया जा सकता है. इस स्थिति को स्टैंडअलोन मोड कहा जाता है. इसकी मदद से, एज माइक्रोगेटवे को बिना इंटरनेट कनेक्शन के चलाया जा सकता है और उसकी जांच की जा सकती है.
स्टैंडअलोन मोड में ये सुविधाएं काम नहीं करतीं, क्योंकि उन्हें Apigee Edge से कनेक्ट करने की ज़रूरत होती है:
- OAuth और एपीआई पासकोड
- अनुरोध भेजने की तय सीमा (कोटा)
- Analytics
दूसरी ओर, कस्टम प्लग इन और स्पाक अरेस्ट काम करते हैं, क्योंकि उन्हें
Apigee Edge से कनेक्ट करने की ज़रूरत नहीं होती. इसके अलावा, extauth
नाम के नए प्लगिन की मदद से, स्टैंडअलोन मोड में
JWT के साथ माइक्रोगेटवे के लिए एपीआई कॉल को अनुमति दी जा सकती है.
गेटवे को कॉन्फ़िगर करना और शुरू करना
Edge Microgateway को स्टैंडअलोन मोड में चलाने के लिए:
- पक्का करें कि आपके डिवाइस पर Edge माइक्रोगेटवे का 2.5.25 या इसके बाद का वर्शन इंस्टॉल हो. अगर ऐसा नहीं है, तो
नए वर्शन में अपग्रेड करने के लिए आपको यह कमांड देना होगा:
npm install -g edgemicro
अगर आपको मदद चाहिए, तो Edge Microgateway इंस्टॉल करना देखें.
- इस नाम से कॉन्फ़िगरेशन फ़ाइल बनाएं:
$HOME/.edgemicro/
org_name-
env_name-config.yaml
उदाहरण के लिए:
vi $HOME/.edgemicro/foo-bar-config.yaml
- फ़ाइल में यह कोड चिपकाएं:
edgemicro: port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - extauth - spikearrest headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true extauth: publickey_url: https://www.googleapis.com/oauth2/v1/certs spikearrest: timeUnit: second allow: 10 buffersize: 0
- "1" वैल्यू के साथ, नीचे दिए गए एनवायरमेंट वैरिएबल को एक्सपोर्ट करें:
export EDGEMICRO_LOCAL=1
- लोकल प्रॉक्सी को इंस्टैंशिएट करने के लिए, यहां दिए गए
start
कमांड का इस्तेमाल करें:edgemicro start -o org_name -e environment_name -a local_proxy_name \ -v local_proxy_version -t target_url -b base_path
जगह:
- your_org वह "संगठन" नाम है जिसे आपने कॉन्फ़िगरेशन फ़ाइल के नाम में इस्तेमाल किया है.
- your_environment एक "env" नाम है, जिसे आपने कॉन्फ़िगरेशन फ़ाइल के नाम में इस्तेमाल किया है.
- local_proxy_name, बनाई जाने वाली लोकल प्रॉक्सी का नाम है. अपनी पसंद का कोई भी नाम इस्तेमाल किया जा सकता है.
- local_proxy_version, प्रॉक्सी का वर्शन नंबर है.
- target_url, प्रॉक्सी के टारगेट के लिए यूआरएल है. (टारगेट वह सेवा है जिसे प्रॉक्सी कॉल करता है.)
- base_path, प्रॉक्सी का बेस पाथ है. यह वैल्यू, फ़ॉरवर्ड स्लैश से शुरू होनी चाहिए. रूट बेस पाथ के लिए, सिर्फ़ फ़ॉरवर्ड स्लैश डालें; जैसे, "/".
उदाहरण के लिए:
edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- कॉन्फ़िगरेशन की जांच करें.
curl http://localhost:8000/echo { "error" : "missing_authorization" }
extauth
प्लगिन,foo-bar-config.yaml
फ़ाइल में होने की वजह से, आपको "missing_permission" से जुड़ी गड़बड़ी मिलती है. यह प्लगिन उस JWT की पुष्टि करता है जो एपीआई कॉल के ऑथराइज़ेशन हेडर में मौजूद होना चाहिए. अगले सेक्शन में, आपको एक JWT मिलेगा जिसकी मदद से बिना गड़बड़ी के एपीआई कॉल किए जा सकेंगे.
उदाहरण: ऑथराइज़ेशन टोकन पाना
इस उदाहरण में, Apigee Edge (edgemicro-auth/jwkPublicKeys
) पर, Edge Microgateway JWT एंडपॉइंट से JWT पाने का तरीका बताया गया है.
यह एंडपॉइंट, एज माइक्रोगेटवे के स्टैंडर्ड सेटअप और कॉन्फ़िगरेशन को पूरा करने पर डिप्लॉय किया जाता है.
Apigee एंडपॉइंट से जेडब्लयूटी पाने के लिए, आपको सबसे पहले स्टैंडर्ड Edge माइक्रोगेटवे सेटअप करना होगा और
इंटरनेट से कनेक्ट करना होगा. यहां Apigee एंडपॉइंट का इस्तेमाल सिर्फ़ उदाहरण के लिए किया जाता है.
यह ज़रूरी नहीं है. आपके पास किसी दूसरे JWT टोकन एंडपॉइंट का इस्तेमाल करने का भी विकल्प होता है. अगर आपने ऐसा किया, तो आपको उस एंडपॉइंट के लिए उपलब्ध कराए गए एपीआई का इस्तेमाल करके, JWT पाना होगा.
edgemicro-auth/jwkPublicKeys
एंडपॉइंट का इस्तेमाल करके टोकन पाने का तरीका यहां बताया गया है:.
- आपको Apigee Edge पर अपने संगठन/एनवायरमेंट में
edgemicro-auth
प्रॉक्सी डिप्लॉय करने के लिए, Edge माइक्रोगेट का स्टैंडर्ड सेटअप और कॉन्फ़िगरेशन करना होगा. अगर आपने यह चरण पहले ही पूरा कर लिया है, तो आपको इसे दोहराने की ज़रूरत नहीं है. - अगर आपने Apigee Cloud पर Edge माइक्रोगेटवे लागू किया है, तो आपका इंटरनेट से कनेक्ट होना ज़रूरी है, ताकि आप इस एंडपॉइंट से JWT पा सकें.
-
एज माइक्रोगेटवे को बंद करें:
edgemicro stop
- पिछली बार बनाई गई कॉन्फ़िगरेशन फ़ाइल (
$HOME/.edgemicro
/org-env-config.yaml
) में,extauth:publickey_url
एट्रिब्यूट को अपने Apigee Edge के संगठन/एनवायरमेंट मेंedgemicro-auth/jwkPublicKeys
एंडपॉइंट पर ले जाएं. उदाहरण के लिए:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
कॉन्फ़िगरेशन फ़ाइल के नाम में इस्तेमाल किए गए संगठन/एनवी के नाम इस्तेमाल करके, Edge माइक्रोगेटवे को रीस्टार्ट करें. उदाहरण के लिए:
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
-
ऑथराइज़ेशन एंडपॉइंट से JWT टोकन पाएं.
edgemicro-auth/jwkPublicKeys
एंडपॉइंट का इस्तेमाल किया जा रहा है, इसलिए इस सीएलआई कमांड का इस्तेमाल किया जा सकता है:
edgemicro token
कमांड या एपीआई का इस्तेमाल करके, Edge माइक्रोगेटवे के लिए JWT जनरेट किया जा सकता है. उदाहरण के लिए:
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
जगह:
- आपके Apigee संगठन का नाम your_org है, जिसके लिए आपने Edge माइक्रोगेटवे को पहले कॉन्फ़िगर किया था.
- your_env, संगठन का एक एनवायरमेंट है.
i
विकल्प ऐसे डेवलपर ऐप्लिकेशन के उपभोक्ता कुंजी के बारे में बताता है जिसमेंedgemicro-auth
प्रॉक्सी शामिल है.s
विकल्प, डेवलपर ऐप्लिकेशन के उपभोक्ता की निजता के बारे में बताता है. इस ऐप्लिकेशन में ऐसा प्रॉडक्ट मौजूद है जिसमेंedgemicro-auth
प्रॉक्सी शामिल है.
यह निर्देश, Apigee Edge से एक JWT जनरेट करने के लिए कहता है. इसके बाद, इसका इस्तेमाल एपीआई कॉल की पुष्टि करने के लिए किया जा सकेगा.
टोकन जनरेट करने का तरीका भी देखें.स्टैंडअलोन कॉन्फ़िगरेशन की जांच करना
कॉन्फ़िगरेशन की जांच करने के लिए, अनुमति देने वाले हेडर में जोड़े गए टोकन के साथ एपीआई को इस तरह कॉल करें:
curl http://localhost:8000/echo -H "Authorization: Bearer your_token
उदाहरण:
curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"
आउटपुट का उदाहरण:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
लोकल प्रॉक्सी मोड का इस्तेमाल करना
लोकल प्रॉक्सी मोड में, Edge Microgateway को Apigee Edge पर लागू करने के लिए, माइक्रोगेटवे-अवेयर प्रॉक्सी की ज़रूरत नहीं होती. इसके बजाय, माइक्रोगेटवे शुरू करते समय लोकल प्रॉक्सी नाम, बेस पाथ, और टारगेट यूआरएल देकर "लोकल प्रॉक्सी" को कॉन्फ़िगर किया जा सकता है. इसके बाद, माइक्रोगेटवे को एपीआई कॉल स्थानीय प्रॉक्सी के टारगेट यूआरएल पर भेजे जाते हैं. अन्य सभी मामलों में, स्थानीय प्रॉक्सी मोड ठीक उसी तरह काम करता है, जैसा कि एज माइक्रोगेटवे को इसके सामान्य मोड में चलाने के लिए किया जाता है. पुष्टि करने की सुविधा ठीक उसी तरह काम करती है, जिस तरह से करता है जैसे कि स्पैम के बंद होने और कोटा लागू करने की प्रक्रिया, कस्टम प्लगिन वगैरह.
इस्तेमाल की स्थिति और उदाहरण
लोकल प्रॉक्सी मोड तब काम आता है, जब आपको Edge माइक्रोगेटवे इंस्टेंस के साथ सिर्फ़ एक प्रॉक्सी जोड़ने की ज़रूरत हो. उदाहरण के लिए, Edge माइक्रोगेटवे को साइडकार प्रॉक्सी के तौर पर इंजेक्ट किया जा सकता है, जहां माइक्रोगेटवे और सेवा एक ही पॉड में चलती है. साथ ही, जहां माइक्रोगेटवे अपनी कंपैनियन सेवा से आने वाले या उससे आने वाले ट्रैफ़िक को मैनेज करता है. नीचे दी गई इमेज इस आर्किटेक्चर को दिखाती है, जहां एज माइक्रोगेटवे Kubernetes क्लस्टर में साइडकार प्रॉक्सी के तौर पर काम करता है. हर माइक्रोगेटवे इंस्टेंस, अपनी कंपैनियन सेवा के तहत सिर्फ़ एक एंडपॉइंट से बात करता है:
आर्किटेक्चर के इस स्टाइल का एक फ़ायदा यह है कि Edge माइक्रोगेटवे कंटेनर एनवायरमेंट में लागू होने वाली अलग-अलग सेवाओं के लिए एपीआई मैनेजमेंट की सुविधा देता है, जैसे कि Kubernetes क्लस्टर.
लोकल प्रॉक्सी मोड कॉन्फ़िगर करना
एज माइक्रोगेटवे को लोकल प्रॉक्सी मोड में चलाने के लिए, इसे कॉन्फ़िगर करें. इसके लिए, यह तरीका अपनाएं:
- पक्का करें कि आपके डिवाइस पर Edge माइक्रोगेटवे का 2.5.25 या इसके बाद का वर्शन इंस्टॉल हो. अगर ऐसा नहीं है, तो
नए वर्शन में अपग्रेड करने के लिए आपको यह कमांड देना होगा:
npm install -g edgemicro
अगर आपको मदद चाहिए, तो Edge Microgateway इंस्टॉल करना देखें.
- अपने लोकल कॉन्फ़िगरेशन एनवायरमेंट को सेट अप करने के लिए,
edgemicro init
चलाएं. यह ठीक वैसा ही होता है, जैसा किसी सामान्य Edge माइक्रोगेटवे के सेटअप में किया जाता है. एज माइक्रोगेटवे को कॉन्फ़िगर करना भी देखें. edgemicro configure
को उसी तरह चलाएं, जैसे आप Edge माइक्रोगेटवे को सेटअप करने के लिए करेंगे. उदाहरण के लिए:edgemicro configure -o your_org -e your_env -u your_apigee_username
यह निर्देश, Edge में edgemicro-auth नीति को डिप्लॉय करता है. साथ ही, यह एक कुंजी और सीक्रेट बताता है कि आपको माइक्रोगेटवे शुरू करना होगा. अगर आपको मदद चाहिए, तो Edge Microgateway को कॉन्फ़िगर करें देखें.
- Apigee Edge पर, एक एपीआई प्रॉडक्ट बनाएं और उसे कॉन्फ़िगर करने के लिए, यहां दी गई ज़रूरी शर्तों को पूरा करें. अन्य सभी कॉन्फ़िगरेशन को अपनी पसंद के मुताबिक मैनेज किया जा सकता है:
- आपको प्रॉडक्ट में edgemicro-auth प्रॉक्सी जोड़ना ज़रूरी है. आपके
edgemicro configure
चलाने पर, यह प्रॉक्सी अपने-आप डिप्लॉय हो गया है. - आपको एक रिसॉर्स पाथ देना ज़रूरी है. Apigee, प्रॉडक्ट में यह पाथ जोड़ने का सुझाव देता है:
/**
. ज़्यादा जानने के लिए, संसाधन पाथ को कॉन्फ़िगर करना लेख पढ़ें. Edge के दस्तावेज़ में एपीआई प्रॉडक्ट बनाएं भी देखें.
- आपको प्रॉडक्ट में edgemicro-auth प्रॉक्सी जोड़ना ज़रूरी है. आपके
Apigee Edge पर, डेवलपर बनाएं. इसके अलावा, आपके पास किसी मौजूदा डेवलपर का इस्तेमाल करने का भी विकल्प है. मदद के लिए, Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके डेवलपर जोड़ना देखें.
- Apigee Edge पर, डेवलपर ऐप्लिकेशन बनाएं. आपको उस एपीआई प्रॉडक्ट को जोड़ना ज़रूरी है जिसे आपने ऐप्लिकेशन में अभी बनाया है. मदद के लिए, Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में ऐप्लिकेशन को रजिस्टर करना देखें.
- जिस मशीन पर Edge माइक्रोगेटवे इंस्टॉल है वहां इस एनवायरमेंट वैरिएबल को "1" वैल्यू के साथ एक्सपोर्ट करें.
export EDGEMICRO_LOCAL_PROXY=1
- नीचे दिए गए
start
निर्देश का इस्तेमाल करें:edgemicro start -o your_org -e your_environment -k your_key -s your_secret \ -a local_proxy_name -v local_proxy_version -t target_url -b base_path
जगह:
- your_org आपका Apigee संगठन है.
- your_environment आपके संगठन का एनवायरमेंट है.
- your_key वह कुंजी है जो
edgemicro configure
चलाने पर आपको मिली थी. - your_secret वह सीक्रेट है जो आपको
edgemicro configure
चलाने पर मिला था. - local_proxy_name, बनाई जाने वाली लोकल प्रॉक्सी का नाम है.
- local_proxy_version, प्रॉक्सी का वर्शन नंबर है.
- target_url, प्रॉक्सी के टारगेट के लिए यूआरएल है (वह सेवा जिसे प्रॉक्सी कॉल करेगा).
- base_path, प्रॉक्सी का बेस पाथ है. यह वैल्यू, फ़ॉरवर्ड स्लैश से शुरू होनी चाहिए. रूट बेस पाथ के लिए, सिर्फ़ फ़ॉरवर्ड स्लैश डालें; जैसे, "/".
उदाहरण के लिए:
edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \ -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \ -t http://mocktarget.apigee.net -b /echo
कॉन्फ़िगरेशन की जांच करना
प्रॉक्सी एंडपॉइंट पर कॉल करके, स्थानीय प्रॉक्सी कॉन्फ़िगरेशन की जांच की जा सकती है. उदाहरण के लिए,
अगर आपने /echo
का बेसपाथ तय किया है, तो प्रॉक्सी को इस तरह से कॉल किया जा सकता है:
curl http://localhost:8000/echo { "error" : "missing_authorization", "error_description" : "Missing Authorization header" }
इस शुरुआती एपीआई कॉल में कोई गड़बड़ी हुई, क्योंकि आपने मान्य एपीआई पासकोड नहीं दिया. आपने पहले जो डेवलपर ऐप्लिकेशन बनाया है, उसमें आपको कुंजी मिल सकती है. EDGE यूज़र इंटरफ़ेस (यूआई) में ऐप्लिकेशन खोलें, उपभोक्ता कुंजी को कॉपी करें और उस कुंजी का इस्तेमाल इस तरह करें:
curl http://localhost:8000/echo -H 'x-api-key:your_api_key'
उदाहरण के लिए:
curl http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"
आउटपुट का उदाहरण:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }