आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
Edge Microgateway v. 3.2.x
इस विषय में, Edge Microgateway को मैनेज और कॉन्फ़िगर करने के तरीके के बारे में बताया गया है.
इंटरनेट कनेक्शन होने पर, Edge Microgateway को अपग्रेड करना
इस सेक्शन में, Edge Microgateway के मौजूदा इंस्टॉलेशन को अपग्रेड करने का तरीका बताया गया है. अगर आप बिना इंटरनेट कनेक्शन के काम कर रहे हैं, तो क्या एज माइक्रोगेटवे को इंटरनेट कनेक्शन के बिना इंस्टॉल किया जा सकता है?.
Apigee का सुझाव है कि आप अपने मौजूदा कॉन्फ़िगरेशन को इनके साथ टेस्ट करें नए वर्शन का इस्तेमाल करें.
- Edge के सबसे नए वर्शन पर अपग्रेड करने के लिए, नीचे दिया गया
npm
निर्देश चलाएं माइक्रोगेटवे:npm upgrade edgemicro -g
Edge Microgateway का कोई खास वर्शन इंस्टॉल करने के लिए, आपको वर्शन सेट करना होगा संख्या को इंस्टॉल करें. उदाहरण के लिए, वर्शन 3.2.3 पर इंस्टॉल करने के लिए, निम्न आदेश:
npm install edgemicro@3.2.3 -g
- वर्शन नंबर देखें। उदाहरण के लिए, अगर आपने वर्शन 3.2.3 इंस्टॉल किया है, तो:
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.2.3
- आखिर में, edgemicro-auth प्रॉक्सी के नए वर्शन पर अपग्रेड करें:
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
कॉन्फ़िगरेशन में बदलाव करना
जिन कॉन्फ़िगरेशन फ़ाइलों के बारे में आपको जानकारी होनी चाहिए, उनमें ये शामिल हैं:
- सिस्टम की डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
- नए शुरू किए गए Edge Microgateway इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
- रनिंग इंस्टेंस के लिए डाइनैमिक कॉन्फ़िगरेशन फ़ाइल
इस सेक्शन में, इन फ़ाइलों के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि इनमें बदलाव करने के बारे में आपको क्या जानकारी चाहिए.
सिस्टम का डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
Edge Microgateway इंस्टॉल करने पर, एक डिफ़ॉल्ट सिस्टम कॉन्फ़िगरेशन फ़ाइल यहां दी जाती है:
prefix/lib/node_modules/edgemicro/config/default.yaml
जहां prefix, npm
प्रीफ़िक्स डायरेक्ट्री है. देखें
अगर आपको यह डायरेक्ट्री नहीं मिलती है, तो Edge Microgateway कहां इंस्टॉल है.
सिस्टम कॉन्फ़िगरेशन फ़ाइल बदलने पर, आपको Edge को फिर से शुरू करना होगा, फिर से कॉन्फ़िगर करना होगा, और रीस्टार्ट करना होगा माइक्रोगेटवे:
edgemicro initedgemicro configure [params]
edgemicro start [params]
नए शुरू किए गए Edge Microgateway इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
edgemicro init
चलाने पर, सिस्टम कॉन्फ़िगरेशन फ़ाइल (
ऊपर), default.yaml
, को ~/.edgemicro
डायरेक्ट्री में रखा गया है.
अगर ~/.edgemicro
में कॉन्फ़िगरेशन फ़ाइल बदली जाती है, तो आपको उसे फिर से कॉन्फ़िगर करके रीस्टार्ट करना होगा
एज माइक्रोगेटवे:
edgemicro stopedgemicro configure [params]
edgemicro start [params]
डाइनैमिक मौजूदा इंस्टेंस के लिए कॉन्फ़िगरेशन फ़ाइल
edgemicro configure [params]
चलाने पर, एक डाइनैमिक
कॉन्फ़िगरेशन फ़ाइल ~/.edgemicro
में बनाई गई है. फ़ाइल का नाम इसके मुताबिक रखा गया है
पैटर्न: org-env-config.yaml
, जहां org और
env यह हैं
आपके Apigee Edge के संगठन और एनवायरमेंट के नाम. कॉन्फ़िगरेशन के लिए, इस फ़ाइल का इस्तेमाल किया जा सकता है
बदलाव करें और फिर शून्य-डाउनटाइम के साथ उन्हें फिर से लोड करें. उदाहरण के लिए, अगर आपने कोई प्लगिन जोड़ा और कॉन्फ़िगर किया है,
बिना किसी डाउनटाइम के, कॉन्फ़िगरेशन को फिर से लोड किया जा सकता है. इसके बारे में नीचे बताया गया है.
अगर Edge माइक्रोगेटवे चल रहा है, तो (शून्य-डाउनटाइम विकल्प):
- Edge Microgateway कॉन्फ़िगरेशन को फिर से लोड करें:
edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET
कहां:
- $ORG आपके Edge संगठन का नाम है (आपका एक संगठन होना ज़रूरी है एडमिन).
- $ENV आपके संगठन का एक एनवायरमेंट है (जैसे कि "test" या "प्रॉडक्ट").
- $KEY वह कुंजी है जो कॉन्फ़िगर करने के निर्देश से पहले मिलती थी.
- $SECRET वह कुंजी है जो कॉन्फ़िगर करने के निर्देश से पहले मिलती थी.
उदाहरण के लिए
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
अगर एज माइक्रोगेटवे को बंद कर दिया जाता है, तो:
- Edge माइक्रोगेटवे को रीस्टार्ट करें:
edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
कहां:
- $ORG आपके Edge संगठन का नाम है (आपका एक संगठन होना ज़रूरी है एडमिन).
- $ENV आपके संगठन का एक एनवायरमेंट है. जैसे, "टेस्ट" या "प्रॉडक्ट").
- $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 संगठन और और एज माइक्रोगेटवे को शुरू करने के लिए ज़रूरी कुंजी और सीक्रेट को इनमें सेव किया जा सकता है एनवायरमेंट वैरिएबल:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
इन वैरिएबल को सेट करना ज़रूरी नहीं है. अगर आपने उन्हें सेट किया है, तो आपको उनकी वैल्यू तय करने की ज़रूरत नहीं है जब एज माइक्रोगेटवे को कॉन्फ़िगर और शुरू करने के लिए कमांड-लाइन इंटरफ़ेस (सीएलआई) का इस्तेमाल किया जाता है.
Edge माइक्रोगेटवे पर एसएसएल को कॉन्फ़िगर करना सर्वर
Apigee Edge Microgateway में TLS को कॉन्फ़िगर करने के बारे में जानने के लिए, नीचे दिए गए वीडियो देखें:
वीडियो | ब्यौरा |
---|---|
1-वे नॉर्थबाउंड TLS को कॉन्फ़िगर करना | Apigee Edge Microgateway में TLS को कॉन्फ़िगर करने के बारे में जानें. इस वीडियो में TLS और इसकी अहमियत के बारे में खास जानकारी दी गई है. साथ ही, TLS के बारे में भी बताया गया है में बताया गया है. साथ ही, इसमें बताया गया है कि नॉर्थबाउंड वन-वे TLS को कैसे कॉन्फ़िगर किया जाता है. |
2-वे नॉर्थबाउंड TLS को कॉन्फ़िगर करना | यह दूसरा वीडियो है, जिसमें Apigee Edge Microgateway में TLS को कॉन्फ़िगर करने की जानकारी दी गई है. यह इस वीडियो में, नॉर्थबाउंड टू-वे TLS को कॉन्फ़िगर करने का तरीका बताया गया है. |
1-तरफ़ा और टू-वे साउथबाउंड TLS कॉन्फ़िगर करना | इस तीसरे वीडियो में, Apigee Edge माइक्रोगेटवे में TLS को कॉन्फ़िगर करने की जानकारी दी गई है साउथबाउंड 1-वे और 2-वे TLS को कॉन्फ़िगर करने का तरीका क्या है. |
एसएसएल का इस्तेमाल करने के लिए, माइक्रोगेटवे सर्वर को कॉन्फ़िगर किया जा सकता है. उदाहरण के लिए, एसएसएल को कॉन्फ़िगर करके, एज माइक्रोगेटवे के ज़रिए "https" का इस्तेमाल करके एपीआई को कॉल किया जा सकता है प्रोटोकॉल का इस्तेमाल करें, जैसे:
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
- Edge Microgateway को रीस्टार्ट करें. इसमें बताए गए चरणों का पालन करें जिसके आधार पर कॉन्फ़िगरेशन में बदलाव करना वह कॉन्फ़िगरेशन फ़ाइल जिसमें आपने बदलाव किया है: डिफ़ॉल्ट फ़ाइल या रनटाइम कॉन्फ़िगरेशन फ़ाइल.
यहां एसएसएल के साथ, कॉन्फ़िगरेशन फ़ाइल के 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 |
इस्तेमाल करने के लिए, साइफ़र के बारे में जानकारी देने वाली स्ट्रिंग. इनको अलग करने के लिए {/9} का इस्तेमाल करें. |
rejectUnauthorized |
अगर सही है, तो सर्वर के सर्टिफ़िकेट की पुष्टि, दिए गए CA की सूची से की जाती है. अगर आपने पुष्टि नहीं हो सकी, तो एक गड़बड़ी दिखती है. |
secureProtocol |
इस्तेमाल किया जाने वाला एसएसएल तरीका. उदाहरण के लिए, एसएसएल को वर्शन 3 पर ज़बरदस्ती लागू करने के लिए SSLv3_method. |
servername |
SNI (सर्वर नेम इंडिकेशन) TLS एक्सटेंशन के लिए सर्वर का नाम. |
requestCert |
2-वे एसएसएल के लिए सही; 1-वे एसएसएल के लिए गलत |
क्लाइंट के एसएसएल/टीएलएस विकल्पों का इस्तेमाल करना
टारगेट से कनेक्ट करते समय, एज माइक्रोगेटवे को 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
ऐसे मामले में जहां आप एक से ज़्यादा खास टारगेट पर TLS/एसएसएल सेटिंग लागू करना चाहते हैं, आपको कॉन्फ़िगरेशन में पहले होस्ट का नाम "खाली" है, जिससे यूनिवर्सल रिक्वेस्ट चालू होती हैं. इसके बाद, किसी खास होस्ट को होस्ट किसी भी क्रम में हो सकते हैं. इस उदाहरण में, सेटिंग एक से ज़्यादा होस्ट पर लागू की गई हैं:
targets: - host: ## Note that this value must be "empty" ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true - host: 'myserver1.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt rejectUnauthorized: true - host: 'myserver2.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt rejectUnauthorized: true
यहां क्लाइंट के लिए काम करने वाले सभी विकल्पों की सूची दी गई है:
विकल्प | ब्यौरा |
---|---|
pfx |
ऐसी pfx फ़ाइल का पाथ जिसमें निजी पासकोड, सर्टिफ़िकेट, और CA सर्टिफ़िकेट शामिल हैं
क्लाइंट का PFX फ़ॉर्मैट में होना चाहिए. |
key |
ca.key फ़ाइल का पाथ (PEM फ़ॉर्मैट में). |
passphrase |
ऐसी स्ट्रिंग जिसमें निजी पासकोड या PFX के लिए लंबा पासवर्ड होता है. |
cert |
ca.cert फ़ाइल का पाथ (PEM फ़ॉर्मैट में). |
ca |
उस फ़ाइल का पाथ जिसमें PEM फ़ॉर्मैट में भरोसेमंद सर्टिफ़िकेट की सूची है. |
ciphers |
इस्तेमाल करने के लिए, साइफ़र के बारे में जानकारी देने वाली स्ट्रिंग. इनको अलग करने के लिए {/9} का इस्तेमाल करें. |
rejectUnauthorized |
अगर सही है, तो सर्वर के सर्टिफ़िकेट की पुष्टि, दिए गए CA की सूची से की जाती है. अगर आपने पुष्टि नहीं हो सकी, तो एक गड़बड़ी दिखती है. |
secureProtocol |
इस्तेमाल किया जाने वाला एसएसएल तरीका. उदाहरण के लिए, एसएसएल को वर्शन 3 पर ज़बरदस्ती लागू करने के लिए SSLv3_method. |
servername |
SNI (सर्वर नेम इंडिकेशन) TLS एक्सटेंशन के लिए सर्वर का नाम. |
Edgeमाइक्रो-ऑथराइज़ेशन प्रॉक्सी को पसंद के मुताबिक बनाना
Edge Microgateway डिफ़ॉल्ट रूप से, OAuth2 की पुष्टि करने के लिए Apigee Edge पर डिप्लॉय किए गए प्रॉक्सी का इस्तेमाल करता है.
यह प्रॉक्सी, edgemicro configure
चलाने पर लागू होती है. इसे बदला जा सकता है
किसी JSON वेब टोकन में पसंद के मुताबिक दावों के लिए सहायता जोड़ने के लिए इस प्रॉक्सी का डिफ़ॉल्ट कॉन्फ़िगरेशन
(JWT), टोकन की समयसीमा खत्म होने की तारीख को कॉन्फ़िगर करें, और रीफ़्रेश टोकन जनरेट करें. ज़्यादा जानकारी के लिए, GitHub में edgemicro-auth पेज देखें.
पुष्टि करने की कस्टम सेवा का इस्तेमाल करना
Edge Microgateway डिफ़ॉल्ट रूप से, OAuth2 की पुष्टि करने के लिए Apigee Edge पर डिप्लॉय किए गए प्रॉक्सी का इस्तेमाल करता है.
यह प्रॉक्सी, edgemicro configure
चलाने पर लागू होती है. डिफ़ॉल्ट रूप से, यह
Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में, प्रॉक्सी का यूआरएल इस तरह से दिखाया जाता है:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
अगर आपको पुष्टि करने की प्रक्रिया को मैनेज करने के लिए अपनी पसंद के मुताबिक सेवा का इस्तेमाल करना है, तो
कॉन्फ़िगरेशन फ़ाइल में, आपकी सेवा पर ले जाने के लिए authUri
वैल्यू. उदाहरण के लिए, आपके पास
ऐसी सेवा जो पहचान की पुष्टि करने के लिए LDAP का इस्तेमाल करती है.
लॉग फ़ाइलें मैनेज करना
Edge Microgateway हर अनुरोध और जवाब की जानकारी लॉग करता है. लॉग फ़ाइलें काम की होती हैं डीबग करने और समस्या हल करने के बारे में जानकारी.
लॉग फ़ाइलें कहां सेव की जाती हैं
डिफ़ॉल्ट रूप से, लॉग फ़ाइलें /var/tmp
में सेव की जाती हैं.
डिफ़ॉल्ट लॉग को बदलने का तरीका फ़ाइल डायरेक्ट्री
जिस डायरेक्ट्री में लॉग फ़ाइलें सेव की जाती हैं उसकी जानकारी Edge Microgateway कॉन्फ़िगरेशन में दी जाती है फ़ाइल से लिए जाते हैं. यह भी देखें कॉन्फ़िगरेशन बनाना बदलाव के बारे में ज़्यादा जानें.
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
कोई दूसरी लॉग फ़ाइल डायरेक्ट्री तय करने के लिए, dir की वैल्यू बदलें.
कंसोल को लॉग भेजें
लॉगिंग को कॉन्फ़िगर किया जा सकता है, ताकि लॉग की जानकारी को
लॉग फ़ाइल से मेल खाना चाहिए. to_console
फ़्लैग को 'सही है' पर इस तरह सेट करें:
edgemicro: logging: to_console: true
इस सेटिंग को चुनने पर, लॉग को स्टैंडर्ड आउट मोड पर भेजा जाएगा. वर्तमान में, आप दोनों को लॉग नहीं भेज सकते stdout और लॉग फ़ाइल में जोड़े.
डेटा लॉग करने का लेवल सेट करने का तरीका
आपको edgemicro
कॉन्फ़िगरेशन में इस्तेमाल करने के लिए लॉग लेवल तय करना होता है.
लॉग लेवल और उनके ब्यौरे की पूरी सूची देखें, Edgemicro एट्रिब्यूट देखें.
उदाहरण के लिए, यह कॉन्फ़िगरेशन, लॉगिंग लेवल को debug
पर सेट करता है:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: debug dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
लॉग इंटरवल बदलने का तरीका
इन इंटरवल को Edge Microgateway कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन में बदलाव करना भी देखें.
कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट ये हैं:
- 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
लॉग फ़ाइल की सख्त अनुमतियों को हटाने का तरीका
Edge Microgateway डिफ़ॉल्ट रूप से, फ़ाइल ऐक्सेस करने की अनुमति के साथ ऐप्लिकेशन लॉग फ़ाइल (api-log.log
) जनरेट करता है
लेवल 0600 पर सेट है. अनुमति के इस लेवल पर बाहरी ऐप्लिकेशन या उपयोगकर्ताओं को अनुमति नहीं है
लॉग फ़ाइल पढ़ने के लिए. इस सख्त अनुमति के लेवल को कम करने के लिए, logging:disableStrictLogFile
सेट करें
true
तक. जब यह एट्रिब्यूट true
होता है, तो लॉग फ़ाइल इसके साथ बनाई जाती है
फ़ाइल अनुमति 0755 पर सेट है. अगर false
है या एट्रिब्यूट की वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से अनुमति 0600 पर सेट होती है.
वर्शन 3.2.3 में जोड़ा गया.
उदाहरण के लिए:
edgemicro: logging: disableStrictLogFile: true
लॉग फ़ाइल के रखरखाव के बेहतर तरीके
समय के साथ लॉग फ़ाइल का डेटा इकट्ठा होने पर, Apigee का सुझाव है कि आप इन तरीकों का इस्तेमाल करें तरीके:
- लॉग फ़ाइलें काफ़ी बड़ी हो सकती हैं, इसलिए पक्का करें कि लॉग फ़ाइल डायरेक्ट्री में ज़रूरत के मुताबिक स्टोरेज हो. लॉग फ़ाइलें कहां सेव की जाती हैं और डिफ़ॉल्ट लॉग फ़ाइल को बदलने का तरीका' वाले नीचे दिए गए सेक्शन देखें डायरेक्ट्री मौजूद होनी चाहिए.
- हफ़्ते में कम से कम एक बार, लॉग फ़ाइलों को मिटाएं या उन्हें अलग संग्रह वाली डायरेक्ट्री में ले जाएं.
- अगर आपकी नीति के लिए लॉग मिटाने की नीति है, तो सीएलआई निर्देश
edgemicro log -c
का इस्तेमाल किया जा सकता है पुराने लॉग हटाने के लिए.
लॉग फ़ाइल का नाम रखने का तरीका
हर Edge Microgateway इंस्टेंस, .log
एक्सटेंशन वाली एक लॉग फ़ाइल बनाता है. कॉन्टेंट बनाने
लॉग फ़ाइलों का नाम रखने के लिए यह तरीका अपनाएं:
edgemicro-HOST_NAME-INSTANCE_ID-api.log
उदाहरण के लिए:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
लॉग फ़ाइल के कॉन्टेंट के बारे में जानकारी
इसमें जोड़ा गया: v2.3.3
डिफ़ॉल्ट रूप से, लॉगिंग सेवा डाउनलोड की गई प्रॉक्सी, प्रॉडक्ट, और JSON को मिटा देती है
वेब टोकन (JWT). अगर आपको इन ऑब्जेक्ट को कंसोल में दिखाना है, तो कमांड लाइन फ़्लैग सेट करें
Edge Microgateway शुरू करने पर DEBUG=*
. उदाहरण के लिए:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
"api" की सामग्री लॉग फ़ाइल
"api" लॉग फ़ाइल में अनुरोधों और जवाबों के फ़्लो के बारे में पूरी जानकारी दी गई है एज माइक्रोगेटवे तक पहुंचा जा सकता है. "api" लॉग फ़ाइलों के नाम इस तरह रखे जाते हैं:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
एज माइक्रोगेटवे को किए गए हर अनुरोध के लिए, "एपीआई" में चार इवेंट कैप्चर किए जाते हैं लॉग फ़ाइल:
- क्लाइंट का अनुरोध
- टारगेट के लिए किया गया अनुरोध
- टारगेट से मिलने वाला जवाब
- क्लाइंट को भेजा जाने वाला जवाब
इनमें से हर एंट्री को शॉर्टहैंड नोटेशन में दिखाया जाता है, ताकि लॉग बनाने में मदद मिल सके फ़ाइलें अधिक संक्षिप्त हो जाती हैं. यहां सैंपल के तौर पर चार इवेंट दिए गए हैं. इनमें से हर इवेंट के बारे में जानकारी दी गई है. लॉग में फ़ाइल में वे इस तरह दिखते हैं (लाइन नंबर सिर्फ़ दस्तावेज़ में रेफ़रंस के लिए होते हैं, वे लॉग फ़ाइल में डालें).
(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 - लॉगिंग लेवल. यह वैल्यू, लेन-देन के कॉन्टेक्स्ट और लॉगिंग लेवल सेट पर निर्भर करती है
edgemicro
कॉन्फ़िगरेशन में. लॉग इन करने का लेवल सेट करने का तरीका देखें. आंकड़ों के रिकॉर्ड के लिए, लेवलstats
पर सेट होता है. आंकड़ों के रिकॉर्ड को यहां रिपोर्ट किया जाता हैstats_log_interval
कॉन्फ़िगरेशन के साथ सेट किया गया एक सामान्य इंटरवल. लॉग इंटरवल बदलने का तरीका भी देखें. - req - इवेंट की पहचान करता है. इस मामले में, क्लाइंट.
- m - अनुरोध में इस्तेमाल की गई एचटीटीपी क्रिया.
- u - बेसपाथ के बाद का यूआरएल का हिस्सा.
- h - होस्ट और पोर्ट नंबर जहां Edge Microgateway है सुना जा रहा है.
- r - वह रिमोट होस्ट और पोर्ट जहां क्लाइंट अनुरोध करता है की उत्पत्ति हुई.
- i - अनुरोध आईडी. इवेंट के चारों एंट्री में, यह आईडी एक ही होगा. हर अनुरोध को एक यूनीक अनुरोध आईडी असाइन किया गया है. लॉग रिकॉर्ड को अनुरोध के आईडी से जोड़ने पर, टारगेट के इंतज़ार के समय के बारे में अहम जानकारी.
- d - अनुरोध मिलने के बाद से मिलीसेकंड में अवधि एज माइक्रोगेटवे. ऊपर दिए गए उदाहरण में, अनुरोध 0 के लिए टारगेट का जवाब मिला था 7 मिलीसेकंड (लाइन 3) के बाद, और चार अतिरिक्त चरण के बाद क्लाइंट को जवाब भेजा जाता है मिलीसेकंड (पंक्ति 4). दूसरे शब्दों में, अनुरोध का कुल इंतज़ार समय 11 मिलीसेकंड था, जिसमें टारगेट ने कौनसे 7 मिलीसेकंड लिए और एज माइक्रोगेटवे ने 4 मिलीसेकंड लिए वह भी ऐसा कर सकता है.
2. टारगेट के लिए किए गए आउटगोइंग अनुरोध का सैंपल:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - यूनिक्स तारीख स्टैंप
- info - लॉगिंग लेवल. यह वैल्यू, लेन-देन के कॉन्टेक्स्ट और लॉगिंग लेवल सेट पर निर्भर करती है
edgemicro
कॉन्फ़िगरेशन में. लॉग इन करने का लेवल सेट करने का तरीका देखें. आंकड़ों के रिकॉर्ड के लिए, लेवलstats
पर सेट होता है. आंकड़ों के रिकॉर्ड को यहां रिपोर्ट किया जाता हैstats_log_interval
कॉन्फ़िगरेशन के साथ सेट किया गया एक सामान्य इंटरवल. लॉग इंटरवल बदलने का तरीका भी देखें. - treq - इवेंट की पहचान करता है. इस मामले में, टारगेट अनुरोध.
- m - टारगेट अनुरोध में इस्तेमाल की गई एचटीटीपी क्रिया.
- u - बेसपाथ के बाद का यूआरएल का हिस्सा.
- h - बैकएंड टारगेट का होस्ट और पोर्ट नंबर.
- i - लॉग एंट्री का आईडी. इवेंट की चारों एंट्री में, यह जानकारी शेयर की जाएगी आईडी.
3. टारगेट से आने वाले रिस्पॉन्स का सैंपल
1436403888672 info tres s=200, d=7, i=0
1436403888651 - यूनिक्स तारीख स्टैंप
- info - लॉगिंग लेवल. यह वैल्यू, लेन-देन के कॉन्टेक्स्ट और लॉगिंग लेवल सेट पर निर्भर करती है
edgemicro
कॉन्फ़िगरेशन में. लॉग इन करने का लेवल सेट करने का तरीका देखें. आंकड़ों के रिकॉर्ड के लिए, लेवलstats
पर सेट होता है. आंकड़ों के रिकॉर्ड को यहां रिपोर्ट किया जाता हैstats_log_interval
कॉन्फ़िगरेशन के साथ सेट किया गया एक सामान्य इंटरवल. लॉग इंटरवल बदलने का तरीका भी देखें. - tres - इवेंट की पहचान करता है. इस मामले में, टारगेट रिस्पॉन्स.
- s - एचटीटीपी रिस्पॉन्स की स्थिति.
- d - मिलीसेकंड में अवधि. एपीआई कॉल में इतना समय लगा टारगेट किया जा सकता है.
- i - लॉग एंट्री का आईडी. इवेंट की चारों एंट्री में, यह जानकारी शेयर की जाएगी आईडी.
4. क्लाइंट को भेजे जाने वाले जवाब का सैंपल
1436403888676 info res s=200, d=11, i=0
1436403888651 - यूनिक्स तारीख स्टैंप
- info - लॉगिंग लेवल. यह वैल्यू, लेन-देन के कॉन्टेक्स्ट और लॉगिंग लेवल सेट पर निर्भर करती है
edgemicro
कॉन्फ़िगरेशन में. लॉग इन करने का लेवल सेट करने का तरीका देखें. आंकड़ों के रिकॉर्ड के लिए, लेवलstats
पर सेट होता है. आंकड़ों के रिकॉर्ड को यहां रिपोर्ट किया जाता हैstats_log_interval
कॉन्फ़िगरेशन के साथ सेट किया गया एक सामान्य इंटरवल. लॉग इंटरवल बदलने का तरीका भी देखें. - res - इवेंट की पहचान करता है. इस स्थिति में, क्लाइंट.
- s - एचटीटीपी रिस्पॉन्स की स्थिति.
- d - मिलीसेकंड में अवधि. इतना समय लग चुका है एपीआई कॉल से लिया गया समय. इसमें टारगेट एपीआई और Edge को लगने वाला समय शामिल है माइक्रोगेटवे.
- i - लॉग एंट्री का आईडी. इवेंट की चारों एंट्री में, यह जानकारी शेयर की जाएगी आईडी.
लॉग फ़ाइल शेड्यूल
लॉग फ़ाइलें rotate_interval से तय किए गए इंटरवल पर रोटेट की जाती हैं कॉन्फ़िगरेशन एट्रिब्यूट. इसमें एंट्री होती रहेंगी रोटेशन अंतराल की समयसीमा खत्म होने तक उसी लॉग फ़ाइल का इस्तेमाल किया जा सकता है. हालांकि, हर बार एज माइक्रोगेटवे रीस्टार्ट करने पर, एक नया यूआईडी मिलता है और यह इस यूआईडी के साथ लॉग फ़ाइलों का एक नया सेट बनाता है. इन्हें भी देखें लॉग फ़ाइल का अच्छा रखरखाव तरीके शामिल करें.
गड़बड़ी के मैसेज
कुछ लॉग एंट्री में गड़बड़ी के मैसेज होंगे. यह पता लगाने के लिए कि ये गड़बड़ियां कहां और क्यों होती हैं, Edge Microgateway त्रुटि देखें संदर्भ देखें.
Edge Microgateway के कॉन्फ़िगरेशन के बारे में जानकारी
इवेंट की जगह कॉन्फ़िगरेशन फ़ाइल
इस सेक्शन में बताए गए कॉन्फ़िगरेशन एट्रिब्यूट Edge माइक्रोगेटवे में मौजूद हैं कॉन्फ़िगरेशन फ़ाइल है. यह भी देखें कॉन्फ़िगरेशन बनाना बदलाव के बारे में ज़्यादा जानें.
Edge_config एट्रिब्यूट
इन सेटिंग का इस्तेमाल Edge Microgateway इंस्टेंस के बीच इंटरैक्शन को कॉन्फ़िगर करने के लिए किया जाता है Apigee Edge.
- बूटस्ट्रैप: (डिफ़ॉल्ट: कोई नहीं) एज पर ले जाने वाला यूआरएल
Apigee Edge पर चलने वाली माइक्रोगेटवे के लिए खास सेवा. Edge Microgateway इस सेवा का इस्तेमाल इन कामों के लिए करता है
Apigee Edge से संपर्क कर सकते हैं. यह URL तब मिलता है जब आप
सार्वजनिक/निजी कुंजी का जोड़ा:
edgemicro genkeys
. ज़्यादा जानकारी के लिए, सेट अप करना और ज़्यादा जानकारी के लिए Edge Microgateway को कॉन्फ़िगर किया जा सकता है. - jwt_public_key: (डिफ़ॉल्ट: कोई नहीं) Edge माइक्रोगेटवे पर ले जाने वाला यूआरएल Apigee Edge पर डिप्लॉय की गई प्रॉक्सी. यह प्रॉक्सी, साइन किया हुआ ऐक्सेस टोकन जारी कर सकता है. जब आप आदेश को निष्पादित करते हैं, तो यह URL लौटाया जाता है: प्रॉक्सी डिप्लॉय करें: Edgemicro कॉन्फ़िगरेशन. ज़्यादा जानकारी के लिए, सेट अप करना और ज़्यादा जानकारी के लिए Edge Microgateway को कॉन्फ़िगर किया जा सकता है.
- quotaUri: यह कॉन्फ़िगरेशन सेट करें
प्रॉपर्टी, जो
edgemicro-auth
प्रॉक्सी के ज़रिए कोटा प्रबंधित करना चाहते हैं, आपके संगठन में डिप्लॉय किया गया. अगर यह प्रॉपर्टी सेट नहीं है, कोटा एंडपॉइंट, इंटरनल Edge Microgateway एंडपॉइंट पर डिफ़ॉल्ट रूप से सेट होता है.edge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
Edgemicro एट्रिब्यूट
ये सेटिंग, Edge Microgateway प्रोसेस को कॉन्फ़िगर करती हैं.
- पोर्ट: (डिफ़ॉल्ट: 8000) वह पोर्ट नंबर जिस पर Edge माइक्रोगेटवे प्रोसेस सुनती है.
- max_connections: (डिफ़ॉल्ट: -1) इससे
एक साथ आने वाले कनेक्शन जो Edge Microgateway को मिल सकते हैं. अगर यह संख्या
पार करने पर, यह स्टेटस दिखता है:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैres.statusCode = 429; // Too many requests
- max_connections_hard: (डिफ़ॉल्ट: -1) एक साथ ज़्यादा से ज़्यादा कितने डिवाइस जोड़े जा सकते हैं से अनुरोध करता है कि Edge Microgateway को कनेक्शन बंद करने से पहले मिल सके. यह सेटिंग का मकसद, डिनायल ऑफ़ सर्विस अटैक को रोकना है. आम तौर पर, इसे इससे बड़ी संख्या पर सेट करें max_connections.
-
लॉगिंग:
-
level: (डिफ़ॉल्ट: गड़बड़ी)
- info - (सुझाया गया) Edge Microgateway इंस्टेंस.
- चेतावनी - सिर्फ़ चेतावनी मैसेज लॉग करता है.
- गड़बड़ी - सिर्फ़ गड़बड़ी के मैसेज को लॉग करता है.
- डीबग - डीबग मैसेज को जानकारी, चेतावनी, और गड़बड़ी के मैसेज के साथ लॉग करता है.
- trace - गड़बड़ियों की जानकारी, चेतावनी, और गड़बड़ी के मैसेज के साथ ट्रेस की जानकारी को लॉग करता है.
- none - लॉग फ़ाइल न बनाएं.
- dir: (डिफ़ॉल्ट: /var/tmp) वह डायरेक्ट्री जहां लॉग फ़ाइलें मौजूद होती हैं सेव किया गया.
- stats_log_interval: (डिफ़ॉल्ट: 60) अंतराल, सेकंड में, जब आंकड़ें रिकॉर्ड, एपीआई लॉग फ़ाइल में लिखा जाता है.
- rotate_interval: (डिफ़ॉल्ट: 24) इंटरवल, घंटों में, जब लॉग फ़ाइलें घुमाया गया.
-
level: (डिफ़ॉल्ट: गड़बड़ी)
- प्लग इन: प्लग इन, Edge Microgateway में फ़ंक्शन जोड़ते हैं. विवरण के लिए प्लगिन डेवलप करने के बारे में, कस्टम प्लगिन डेवलप करना देखें.
- dir: ./gateway डायरेक्ट्री से ./plugins डायरेक्ट्री या कोई ऐब्सलूट पाथ.
- क्रम: आपके Edge माइक्रोगेटवे में जोड़ने के लिए, प्लगिन मॉड्यूल की सूची इंस्टेंस. मॉड्यूल उसी क्रम में काम करेंगे जिस क्रम में वे यहां दिए गए हैं.
-
डीबग: Edge माइक्रोगेटवे प्रोसेस में, रिमोट डीबगिंग की सुविधा जोड़ दी जाती है.
- पोर्ट: वह पोर्ट नंबर जिस पर संगीत सुनना है. उदाहरण के लिए, अपना IDE डीबगर सेट करें सुनने के लिए.
- आर्ग: डीबग प्रोसेस के लिए तर्क. उदाहरण के लिए:
args --nolazy
- config_change_poll_interval: (डिफ़ॉल्ट: 600 सेकंड) एज माइक्रोगेटवे
समय-समय पर नए कॉन्फ़िगरेशन को लोड करता है और अगर कुछ बदलाव होता है, तो फिर से लोड करता है. पोल
Edge पर किए गए किसी भी बदलाव (प्रॉडक्ट में बदलाव, माइक्रोगेटवे-अवेयर प्रॉक्सी वगैरह) को चुनता है
लोकल कॉन्फ़िगरेशन फ़ाइल में किए गए बदलावों से भी बचें.
- disable_config_poll_interval: (डिफ़ॉल्ट: गलत) पर सेट करें अपने आप बदलने वाले पोलिंग को बंद करने के लिए सही चुनें.
- request_timeout: टारगेट अनुरोधों के लिए, टाइम आउट सेट करता है. टाइम आउट इसमें सेट है सेकंड. टाइम आउट होने पर, Edge Microgateway 504 स्टेटस कोड के साथ जवाब देता है. (जोड़ा गया v2.4.x)
- keep_alive_timeout: इस प्रॉपर्टी का इस्तेमाल करके, एज माइक्रोगेटवे को सेट किया जा सकता है टाइम आउट (मिलीसेकंड में). (डिफ़ॉल्ट: 5 सेकंड) (v3.0.6 जोड़ा गया)
- headers_timeout: यह एट्रिब्यूट समय की सीमा (मिलीसेकंड में) तय करता है
एचटीटीपी पार्सर,
एचटीटीपी हेडर पूरे करें.
उदाहरण के लिए:
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
अंदरूनी तौर पर, पैरामीटर Node.js को
Server.headersTimeout
एट्रिब्यूट की वैल्यू सबमिट करें. (डिफ़ॉल्ट: 5 सेकंड से ज़्यादाedgemicro.keep_alive_timeout
से सेट किया गया समय. यह डिफ़ॉल्ट यह सेटिंग, लोड बैलेंसर या प्रॉक्सी को गलती से कनेक्शन ड्रॉप करने से रोकती है.) (v3.1.1 को जोड़ा गया) - noRuleMatchAction: (स्ट्रिंग) वह कार्रवाई (ऐक्सेस देने की अनुमति दें या अस्वीकार करें) अगर
accesscontrol
प्लगइन में दिए गए मिलान नियम का समाधान नहीं हुआ है (मेल नहीं खाता है). मान्य वैल्यू:ALLOW
याDENY
डिफ़ॉल्ट:ALLOW
(जोड़ा गया: v3.1.7) - enableAnalytics: (डिफ़ॉल्ट: सही) एट्रिब्यूट को false पर सेट करें
Analytics प्लगिन को रोकें
को लोड होने से रोकता है. इस मामले में, Apigee Edge के आंकड़ों को कोई कॉल नहीं किया जाएगा. अगर true पर सेट है या जब
यह एट्रिब्यूट नहीं दिया गया है. हालांकि, Analytics प्लगिन सामान्य तरीके से काम करता रहेगा. यहां जाएं:
के लिए Edgemicro विशेषताएं हों
विवरण. (वर्शन 3.1.8 को जोड़ा गया).
उदाहरण:
edgemicro enableAnalytics=false|true
- on_target_response_abort: इस एट्रिब्यूट की मदद से, कंट्रोल किया जा सकता है
अगर क्लाइंट (Edge Microgateway) और
टारगेट सर्वर समय से पहले बंद हो जाता है.
मान ब्यौरा डिफ़ॉल्ट अगर on_target_response_abort
तय नहीं है, तो डिफ़ॉल्ट तरीका जवाब को बिना कोई गड़बड़ी दिखाए, छोटा किया जा सकता है. इन लॉग फ़ाइलों में, एक चेतावनी यह मैसेजtargetResponse aborted
और 502 रिस्पॉन्स कोड के साथ दिखाया जाता है.appendErrorToClientResponseBody
कस्टम गड़बड़ी TargetResponseAborted
को क्लाइंट. इन लॉग फ़ाइलों में, एक चेतावनी यह मैसेजtargetResponse aborted
और 502 रिस्पॉन्स कोड के साथ दिखाया जाता है. तय सीमा में इसके अलावा, मैसेज के साथ गड़बड़ीTargetResponseAborted
को लॉग कर दिया गया हैTarget response ended prematurely.
abortClientRequest
Edge Microgateway ने अनुरोध को रद्द कर दिया है और लॉग फ़ाइलों पर एक चेतावनी लिखी जाती है: TargetResponseAborted
, जिसमें 502 अनुरोध की स्थिति का कोड शामिल है.
उदाहरण:
edgemicro: on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest
हेडर एट्रिब्यूट
ये सेटिंग कॉन्फ़िगर करती हैं कि कुछ एचटीटीपी हेडर का इस्तेमाल कैसे किया जाए.
- x-forwarded-for: (डिफ़ॉल्ट: सही) रोकने के लिए गलत पर सेट करें टारगेट को भेजे जाने वाले हेडर के लिए x-forwarded-for हेडर. ध्यान दें कि अगर एक x-forwarded-for हेडर है अनुरोध में मौजूद है, तो इसकी वैल्यू Edge Analytics में क्लाइंट-आईपी वैल्यू पर सेट होगी.
- x-forwarded-host: (डिफ़ॉल्ट: सही) रोकने के लिए गलत पर सेट करें टारगेट को भेजे जाने वाले x-forwarded-host हेडर.
- x-request-id: (डिफ़ॉल्ट: सही) इसे रोकने के लिए 'गलत' पर सेट करें x-request-id हेडर को टारगेट को पास करना होगा.
- x-response-time: (डिफ़ॉल्ट: true) इसे रोकने के लिए, 'गलत' पर सेट करें टारगेट को भेजे जाने वाले x-response-time हेडर के साथ.
- के ज़रिए: (डिफ़ॉल्ट: सही) गलत पर सेट करें, ताकि हेडर के ज़रिए से: को लक्ष्य तक पहुंचाया गया.
oauth एट्रिब्यूट
इन सेटिंग से यह कॉन्फ़िगर किया जाता है कि Edge Microgateway की मदद से क्लाइंट की पुष्टि कैसे की जाती है.
- allowNoAuthorization: (डिफ़ॉल्ट: गलत) अगर सही पर सेट किया जाता है, तो एपीआई कॉल को अनुमति वाले हेडर के बिना एज माइक्रोगेटवे से गुज़रने की अनुमति दी गई है. इसे इस पर सेट करें 'गलत' है, तब अनुमति देने वाला हेडर ज़रूरी है (डिफ़ॉल्ट).
- allowInvalidAuthorization: (डिफ़ॉल्ट: गलत) अगर 'सही है' पर सेट किया जाता है, तो एपीआई कॉल अगर ऑथराइज़ेशन हेडर में पास किया गया टोकन अमान्य है या उसकी समयसीमा खत्म हो गई है, तो उसे पास किया जा सकता है. इसे सेट करें मान्य टोकन (डिफ़ॉल्ट) का इस्तेमाल करने के लिए, 'गलत' का इस्तेमाल करें.
- अनुमति देने वाला हेडर: (डिफ़ॉल्ट: अनुमति देना: बेयरर) Edge Microgateway को ऐक्सेस टोकन भेजें. आप उन मामलों में डिफ़ॉल्ट को बदलना चाह सकते हैं जहां टारगेट को किसी दूसरे मकसद के लिए, अनुमति वाले हेडर का इस्तेमाल करना होगा.
- api-key-header: (डिफ़ॉल्ट: x-api-key) हेडर या क्वेरी का नाम एक पैरामीटर का इस्तेमाल करके Edge माइक्रोगेटवे को एपीआई पासकोड भेजा जाता है. यह भी देखें कि API पासकोड.
- keep-authorization-header: (डिफ़ॉल्ट: गलत) अगर 'सही' पर सेट किया जाता है, तो ऑथराइज़ेशन हेडर जो अनुरोध भेजा जाता है उसे टारगेट पर भेज दिया जाता है (इसे सुरक्षित रखा जाता है).
- allowOAuthOnly -- अगर सही पर सेट किया जाता है, तो हर एपीआई में एक ऑथराइज़ेशन होना चाहिए बेयरर ऐक्सेस टोकन के साथ हेडर. आपको सिर्फ़ OAuth सुरक्षा मॉडल की अनुमति देने की अनुमति देता है (जब पुराने सिस्टम के साथ काम करने की सुविधा को बनाए रखना). (2.4.x जोड़ा गया)
- allowAPIKeyOnly -- अगर सही पर सेट है, तो हर एपीआई में API कुंजी के साथ x-api-key हेडर (या कोई कस्टम जगह). सिर्फ़ एपीआई पासकोड का सुरक्षा मॉडल इस्तेमाल कर सकते हैं (पुराने सिस्टम के साथ काम करने की सुविधा को बनाए रखते हुए). (2.4.x जोड़ा गया)
- gracePeriod -- यह पैरामीटर थोड़ी सी गड़बड़ी की वजह से होने वाली गड़बड़ियों को रोकने में मदद करता है आपके सिस्टम की घड़ी और इससे पहले नहीं (nbf) या पर जारी (iat) समय में अंतर यह JWT प्राधिकरण टोकन में दर्ज होता है. इस पैरामीटर को अनुमति देने के लिए सेकंड की संख्या पर सेट करें को भी ध्यान में रखा जाता है. (2.5.7 को जोड़ा गया)
प्लग इन के लिए खास एट्रिब्यूट
हर प्लग इन के लिए कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट की जानकारी के लिए, प्लग इन का इस्तेमाल करना देखें.
प्रॉक्सी फ़िल्टर करना
आपके पास यह फ़िल्टर करने की सुविधा है कि Edge Microgateway इंस्टेंस किन माइक्रोगेटवे-अवेयर प्रॉक्सी को प्रोसेस करेगा.
Edge Microgateway के शुरू होने पर, यह सभी माइक्रोगेटवे-अवेयर प्रॉक्सी को डाउनलोड करता है
संगठन से जुड़ा हो. नीचे दिए गए कॉन्फ़िगरेशन का इस्तेमाल करके यह तय करें कि
माइक्रोगेटवे प्रोसेस हो जाएगा. उदाहरण के लिए, यह कॉन्फ़िगरेशन प्रॉक्सी को माइक्रोगेटवे को सीमित करता है
तीन पर प्रोसेस होगा: edgemicro_proxy-1
, edgemicro_proxy-2
,
और edgemicro_proxy-3
:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
प्रॉडक्ट को नाम के हिसाब से फ़िल्टर करना
Edge माइक्रोगेटवे पर चलने वाले एपीआई प्रॉडक्ट की संख्या को सीमित करने के लिए, यहां दिए गए कॉन्फ़िगरेशन का इस्तेमाल करें
डाउनलोड और प्रोसेस करता है. डाउनलोड किए गए प्रॉडक्ट को फ़िल्टर करने के लिए, productnamefilter
जोड़ें
Edge माइक्रोगेटवे *.config.yaml
में दिए गए, /products
एपीआई के लिए क्वेरी पैरामीटर
फ़ाइल से लिए जाते हैं. उदाहरण के लिए:
edge_config: bootstrap: >- https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test jwt_public_key: 'https://myorg-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://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'
ध्यान दें कि क्वेरी पैरामीटर की वैल्यू, रेगुलर एक्सप्रेशन फ़ॉर्मैट में होनी चाहिए और
यूआरएल को कोड में बदला जा सकता है. उदाहरण के लिए, रेगुलर एक्सप्रेशन ^[Ee]dgemicro.*$
के नाम इस तरह के होते हैं:
" Edgemicro-test-1" , " Edgemicro_demo" और "Edgemicro_New_Demo" शामिल हैं. यूआरएल कोड में बदली गई वैल्यू, इसके लिए सही है
क्वेरी पैरामीटर में इसका इस्तेमाल किया जाएगा: %5E%5BEe%5Ddgemicro.%2A%24
.
नीचे दिए गए डीबग आउटपुट से पता चलता है कि सिर्फ़ फ़िल्टर किए गए प्रॉडक्ट डाउनलोड किए गए थे:
... 2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK ... .... .... { "apiProduct":[ { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590549037549, "createdBy":"k***@g********m", "displayName":"test upper case in name", "environments":[ "prod", "test" ], "lastModifiedAt":1590549037549, "lastModifiedBy":"k***@g********m", "name":"Edgemicro_New_Demo", "proxies":[ "catchall" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590548328998, "createdBy":"k***@g********m", "displayName":"edgemicro test 1", "environments":[ "prod", "test" ], "lastModifiedAt":1590548328998, "lastModifiedBy":"k***@g********m", "name":"edgemicro-test-1", "proxies":[ "Lets-Encrypt-Validation-DoNotDelete" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1558182193472, "createdBy":"m*********@g********m", "displayName":"Edge microgateway demo product", "environments":[ "prod", "test" ], "lastModifiedAt":1569077897465, "lastModifiedBy":"m*********@g********m", "name":"edgemicro_demo", "proxies":[ "edgemicro-auth", "edgemicro_hello" ], "quota":"600", "quotaInterval":"1", "quotaTimeUnit":"minute", "scopes":[ ] } ] }
कस्टम एट्रिब्यूट के हिसाब से प्रॉडक्ट फ़िल्टर करना
कस्टम एट्रिब्यूट के आधार पर प्रॉडक्ट फ़िल्टर करने के लिए:
- Edge के यूज़र इंटरफ़ेस (यूआई) में, संगठन/एनवायरमेंट में edgemicro_auth प्रॉक्सी चुनें जहां आपने Edge Microgateway को कॉन्फ़िगर किया है.
- 'डेवलप करें' पर टैप करके, एडिटर में Javaकॉलआउट नीति खोलें.
- कॉमा लगाकर अलग किए गए,
products.filter.attributes
कुंजी वाले कस्टम एट्रिब्यूट जोड़ें विशेषता के नामों की सूची. सिर्फ़ वे प्रॉडक्ट जिनमें कस्टम एट्रिब्यूट का नाम मौजूद हो Edge Microgateway को वापस लौटा दिया जाएगा. - आपके पास जांच की सुविधा को बंद करने का विकल्प भी है
सेटिंग की मदद से, यह देखा जा सकता है कि प्रॉडक्ट मौजूदा एनवायरमेंट के लिए चालू है या नहीं
false
के लिए कस्टम एट्रिब्यूटproducts.filter.env.enable
. (डिफ़ॉल्ट रूप से सही पर सेट होती है.) - (सिर्फ़ प्राइवेट क्लाउड) अगर प्राइवेट क्लाउड के लिए Edge इस्तेमाल किया जा रहा है, तो प्रॉपर्टी सेट करें
सीपीएस के अलावा किसी दूसरी जगह पर प्रॉडक्ट का डेटा इकट्ठा करने के लिए,
org.noncps
सेtrue
.
उदाहरण के लिए:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout"> <DisplayName>JavaCallout</DisplayName> <FaultRules/> <Properties> <Property name="products.filter.attributes">attrib.one, attrib.two</Property> <Property name="products.filter.env.enable">false</Property> <Property name="org.noncps">true</Property> </Properties> <ClassName>io.apigee.microgateway.javacallout.Callout</ClassName> <ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL> </JavaCallout>
आंकड़ों की पुश फ़्रीक्वेंसी कॉन्फ़िगर करना
Edge माइक्रोगेटवे की फ़्रीक्वेंसी को कंट्रोल करने के लिए, इन कॉन्फ़िगरेशन पैरामीटर का इस्तेमाल करें Apigee के लिए उपलब्ध आंकड़ों का डेटा:
- bufferSize (ज़रूरी नहीं): Analytics रिकॉर्ड की ज़्यादा से ज़्यादा संख्या जो बफ़र को सबसे पुराने रिकॉर्ड को छोड़ने से पहले होल्ड किया जा सकता है. डिफ़ॉल्ट: 10,000
- batchSize (ज़रूरी नहीं): आंकड़े के रिकॉर्ड के बैच का ज़्यादा से ज़्यादा साइज़ Apigee को भेजा गया. डिफ़ॉल्ट: 500
- flushInterval (ज़रूरी नहीं): हर फ़्लश के बीच मिलीसेकंड की संख्या आंकड़ों के रिकॉर्ड का बैच, जो Apigee को भेजा जाता है. डिफ़ॉल्ट: 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 प्लगिन को कॉन्फ़िगर करके, किसी एपीआई पाथ को अलग किया जा सकता है, ताकि यह इस तरह दिखे एज Analytics के डैशबोर्ड में एक अलग प्रॉक्सी. उदाहरण के लिए, आपके पास हेल्थ चेक एपीआई को डैशबोर्ड में अलग-अलग करें, ताकि उसे असल एपीआई प्रॉक्सी कॉल के साथ किसी तरह का भ्रम न हो. इस Analytics डैशबोर्ड, अलग-अलग प्रॉक्सी, नाम रखने के इस पैटर्न का पालन करते हैं:
edgemicro_proxyname-health
नीचे दी गई इमेज में, Analytics के डैशबोर्ड में दो अलग-अलग प्रॉक्सी दिखाई गई हैं: edgemicro_hello-health
और
edgemicro_mock-health
:
इनका इस्तेमाल करें Analytics डैशबोर्ड में रिलेटिव और ऐब्सलूट पाथ को अलग-अलग प्रॉक्सी के तौर पर अलग-अलग करने के लिए पैरामीटर:
- relativePath (ज़रूरी नहीं): अलग-अलग यूआरएल में
Analytics डैशबोर्ड. उदाहरण के लिए,
/healthcheck
तय करने पर, ऐसे सभी एपीआई कॉल जिनमें पाथ शामिल है/healthcheck
, डैशबोर्ड मेंedgemicro_proxyname-health
के तौर पर दिखेगा. ध्यान दें कि यह फ़्लैग प्रॉक्सी बेसपाथ पर ध्यान नहीं देता. बेसपाथ के साथ-साथ पूरे पाथ के आधार पर अलग-अलग करने के लिए,proxyPath
फ़्लैग का इस्तेमाल करें. - proxyPath (ज़रूरी नहीं): यह एपीआई के साथ प्रॉक्सी पाथ के बारे में बताता है, इसमें प्रॉक्सी भी शामिल है
बेसपाथ का इस्तेमाल करें. उदाहरण के लिए, अगर आपने
/mocktarget/healthcheck
तय किया है, जहां/mocktarget
प्रॉक्सी बेसपाथ है,/mocktarget/healthcheck
पाथ वाले सभी एपीआई कॉल डैशबोर्ड मेंedgemicro_proxyname-health
के रूप में प्रदर्शित होता है.
उदाहरण के लिए, नीचे दिए गए कॉन्फ़िगरेशन में, /healthcheck
वाला कोई भी एपीआई पाथ
Analytics प्लगिन के हिसाब से अलग-अलग किए जाएंगे. इसका मतलब है, /foo/healthcheck
और /foo/bar/healthcheck
Analytics के डैशबोर्ड में, edgemicro_proxyname-health
नाम की एक अलग प्रॉक्सी के तौर पर, इसे अलग-अलग किया जाएगा.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 relativePath: /healthcheck
नीचे दिए गए कॉन्फ़िगरेशन में, प्रॉक्सी पाथ /mocktarget/healthcheck
वाला कोई भी एपीआई यह काम करेगा
इसे एक अलग प्रॉक्सी के तौर पर अलग किया जाएगा, जिसे edgemicro_proxyname-health
कहा जाएगा
डैशबोर्ड पर भी दिखेगा.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 proxyPath: /mocktarget/healthcheck
एक GA4 की मदद से कंपनी के लिए फ़ायरवॉल
Apigee Edge से संपर्क करने के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करें
वर्शन 3.1.2 में जोड़ा गया.
Edge Microgateway और Apigee Edge के बीच कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करने के लिए, यह करें फ़ॉलो किया जा रहा है:
- एनवायरमेंट वैरिएबल सेट करना
HTTP_PROXY
,HTTPS_PROXY
, औरNO_PROXY
. ये वैरिएबल हर उस एचटीटीपी प्रॉक्सी के होस्ट को कंट्रोल करते हैं जिसका इस्तेमाल आपको कम्यूनिकेशन के लिए करना है Apigee Edge या किन होस्ट को Apigee Edge के साथ कम्यूनिकेशन को मैनेज नहीं करना चाहिए. उदाहरण के लिए:export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
ध्यान दें कि
NO_PROXY
, उन डोमेन की कॉमा-डिलिमिटेड सूची हो सकती है जिनके लिए Edge माइक्रोगेटवे उपलब्ध है प्रॉक्सी नहीं करनी चाहिए.इन वैरिएबल के बारे में ज़्यादा जानकारी के लिए, https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables पर जाएँ
- Edge Microgateway को रीस्टार्ट करें.
टारगेट कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करें
वर्शन 3.1.2 में जोड़ा गया.
Edge माइक्रोगेटवे और बैकएंड टारगेट के बीच कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करने के लिए, ये काम करें:
- माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में यह कॉन्फ़िगरेशन जोड़ें:
edgemicro: proxy: tunnel: true | false url: proxy_url bypass: target_host # target hosts to bypass the proxy. enabled: true | false
कहां:
- टनल: (ज़रूरी नहीं) सही होने पर Edge Microgateway, एचटीटीपी को टनल करने के लिए एचटीटीपी कनेक्ट तरीके का इस्तेमाल करता है
एक टीसीपी कनेक्शन पर अनुरोध भेजना चाहते हैं. (अगर एनवायरमेंट वैरिएबल, जैसे
नीचे बताया गया है,
प्रॉक्सी कॉन्फ़िगर करने के लिए TLS सक्षम है). डिफ़ॉल्ट:
false
- url: एचटीटीपी प्रॉक्सी यूआरएल.
- बायपास: (ज़रूरी नहीं) कॉमा लगाकर अलग किए गए, टारगेट होस्ट के एक या उससे ज़्यादा यूआरएल दिखाता है को एचटीटीपी प्रॉक्सी को बायपास कर देना चाहिए. अगर यह प्रॉपर्टी सेट नहीं है, तो NO_PROXY का इस्तेमाल करें एनवायरमेंट वैरिएबल का इस्तेमाल करके तय करें कि किन टारगेट यूआरएल को बायपास करना है.
- चालू है: अगर सही है और
proxy.url
सेट है, तो एचटीटीपी प्रॉक्सी के लिएproxy.url
वैल्यू का इस्तेमाल करें. अगर सही है औरproxy.url
सेट नहीं है, तो एचटीटीपी प्रॉक्सी में बताई गई प्रॉक्सी का इस्तेमाल करें एनवायरमेंट वैरिएबलHTTP_PROXY
औरHTTPS_PROXY
, जैसा कि इसमें बताया गया है Apigee Edge के साथ कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करें.
उदाहरण के लिए:
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true
- टनल: (ज़रूरी नहीं) सही होने पर Edge Microgateway, एचटीटीपी को टनल करने के लिए एचटीटीपी कनेक्ट तरीके का इस्तेमाल करता है
एक टीसीपी कनेक्शन पर अनुरोध भेजना चाहते हैं. (अगर एनवायरमेंट वैरिएबल, जैसे
नीचे बताया गया है,
प्रॉक्सी कॉन्फ़िगर करने के लिए TLS सक्षम है). डिफ़ॉल्ट:
- Edge Microgateway को रीस्टार्ट करें.
माइक्रोगेटवे-अवेयर में वाइल्डकार्ड का इस्तेमाल करना प्रॉक्सी
एक या उससे ज़्यादा "*" का इस्तेमाल किया जा सकता है किसी प्रॉपर्टी के बेस पाथ में वाइल्डकार्ड
edgemicro_* (माइक्रोगेटवे-अवेयर) प्रॉक्सी. उदाहरण के लिए, इसका बेस पाथ
/team/*/members क्लाइंट को कॉल करने की सुविधा देते हैं
https://[host]/team/blue/members और
https://[host]/team/green/members. इसके लिए आपको नई एपीआई प्रॉक्सी बनाने की ज़रूरत नहीं है
का इस्तेमाल कर सकते हैं. ध्यान दें कि /**/
का इस्तेमाल नहीं किया जा सकता.
अहम जानकारी: Apigee पर वाइल्डकार्ड "*" का इस्तेमाल नहीं किया जा सकता क्योंकि
बेस पाथ का पहला एलिमेंट. उदाहरण के लिए, यह काम नहीं करता: /*/
खोज.
रोटेटिंग JWT कुंजियां
JWT जनरेट करने के बाद, कुछ समय के लिए आपको सार्वजनिक/निजी कुंजी का जोड़ा, Edge पर एन्क्रिप्ट (सुरक्षित) किए गए KVM में सेव किया गया है. नई कुंजी जनरेट करने की यह प्रोसेस पेयर को 'की रोटेशन' कहते हैं.
Edge Microgateway, JWT का कैसे इस्तेमाल करता है
JSON वेब टोकन (JWT), एक टोकन स्टैंडर्ड है. इसके बारे में RFC7519 में बताया गया है. JWT, दावों के सेट पर हस्ताक्षर करने का विकल्प देता है. जिसकी पुष्टि, JWT के ईमेल पते से की जा सकती है.
सीएलआई का इस्तेमाल करके, JWT जनरेट किया जा सकता है और फिर एपीआई पासकोड के बजाय, एपीआई कॉल का ऑथराइज़ेशन हेडर. उदाहरण के लिए:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
सीएलआई के साथ JWT जनरेट करने के बारे में जानकारी के लिए, टोकन जनरेट करेंदेखें.
डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने की सुविधा क्या है?
JWT जनरेट करने के बाद, कुछ समय के लिए आपको सार्वजनिक/निजी कुंजी का जोड़ा, Edge पर एन्क्रिप्ट (सुरक्षित) किए गए KVM में सेव किया गया है. नई कुंजी जनरेट करने की यह प्रोसेस पेयर को 'की रोटेशन' कहते हैं. जब पासकोड को घुमाया जाता है, तो एक नया निजी/सार्वजनिक पासकोड जनरेट होता है और "माइक्रोगेटवे" में सेव होते हैं आपके Apigee Edge संगठन/एनवायरमेंट में केवीएम. इसके अलावा, पुरानी सार्वजनिक कुंजी, उसके मूल पासकोड आईडी की वैल्यू के साथ सेव रहती है.
JWT जनरेट करने के लिए, Edge एन्क्रिप्ट (सुरक्षित) किए गए केवीएम में सेव की गई जानकारी का इस्तेमाल करता है. ऐप्लिकेशन
शुरुआत में सेट अप (कॉन्फ़िगर) करते समय, microgateway
नाम के KVM को कुंजियों से बनाया और भरा गया था
एज माइक्रोगेटवे. KVM में मौजूद कुंजियों का इस्तेमाल, किसी JWT को साइन और एन्क्रिप्ट (सुरक्षित) करने के लिए किया जाता है.
केवीएम कुंजियों में ये शामिल हैं:
-
private_key - साइन करने के लिए इस्तेमाल की जाने वाली सबसे नई आरएसए निजी कुंजी (हाल ही में बनाई गई) JWTs.
-
public_key - JWT की पुष्टि करने के लिए इस्तेमाल किया जाने वाला नया (हाल ही में बनाया गया) सर्टिफ़िकेट Private_key से साइन किया गया.
-
private_key_kid - सबसे नई (हाल ही में बनाई गई) निजी कुंजी का आईडी. इस 'की' आईडी Private_key की वैल्यू से जुड़ी हुई है और इसका इस्तेमाल, कुंजी का नया वर्शन बनाने के लिए किया जाता है.
-
public_key1_kid - सबसे नया (हाल ही में बनाया गया) सार्वजनिक पासकोड का आईडी. यह कुंजी है Public_key1 वैल्यू से जुड़ी होती है. इसका इस्तेमाल कुंजी का नया वर्शन बनाने के लिए किया जाता है. यह मान निजी कुंजी किड की तरह ही है.
-
public_key1 - सबसे नई (हाल ही में बनाई गई) सार्वजनिक कुंजी.
जब आप कुंजी घुमाते हैं, तो मौजूदा कुंजी मान मैप में बदल दिए जाते हैं और नए पुरानी सार्वजनिक कुंजियों को बनाए रखने के लिए, कुंजियां जोड़ी जाती हैं. उदाहरण के लिए:
-
public_key2_kid - पुराना सार्वजनिक पासकोड आईडी. यह कुंजी, Public_key2 वैल्यू है और इसका इस्तेमाल कुंजी को घुमाने के लिए किया जाता है.
-
public_key2 - पुरानी सार्वजनिक कुंजी.
पुष्टि करने के लिए दिए गए JWT की पुष्टि, नए सार्वजनिक पासकोड का इस्तेमाल करके की जाएगी. अगर आपने पुष्टि नहीं हो पाती है, तो पुरानी सार्वजनिक कुंजी का इस्तेमाल किया जाएगा. यह इस्तेमाल तब तक किया जाएगा, जब तक JWT की समयसीमा खत्म नहीं हो जाती (टोकन_खत्म होने का समय* इंटरवल के बाद, डिफ़ॉल्ट 30 मिनट). तय सीमा में इस तरीके से, आप "घुमाएं" कुंजियां, एपीआई ट्रैफ़िक को तुरंत रोके बिना.
डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने का तरीका
इस सेक्शन में, 'की' का नया वर्शन बनाने का तरीका बताया गया है.
- केवीएम को अपग्रेड करने के लिए,
edgemicro upgradekvm
कमांड का इस्तेमाल करें. विवरण के लिए इस आदेश को चलाने पर, अपग्रेड प्रक्रिया के दौरान केवीएम हो जाएंगे. आपको यह चरण सिर्फ़ एक बार करना होगा. - edgemicro-oauth प्रॉक्सी को अपग्रेड करने के लिए,
edgemicro upgradeauth
निर्देश का इस्तेमाल करें. इस निर्देश को चलाने के बारे में जानकारी के लिए, देखें Edgemicro-auth प्रॉक्सी को अपग्रेड करना. आपको यह चरण सिर्फ़ एक बार करना होगा. - अपनी
~/.edgemicro/org-env-config.yaml
फ़ाइल में यह लाइन जोड़ें, जहां आपको यह करना होगा वही संगठन और वातावरण चुनें जिसका इस्तेमाल करने के लिए आपने माइक्रोगेटवे को कॉन्फ़िगर किया था:jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
बटन को घुमाने के लिए, 'की रोटेशन' कमांड चलाएं. इस निर्देश के बारे में ज़्यादा जानकारी के लिए, इसे देखें घुमावदार बटन.
edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET
उदाहरण के लिए:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
कुंजी घुमाने के बाद Edge, Edge Microgateway के लिए कई कुंजियां दिखाता है. इसमें नोट नीचे दिए गए उदाहरण में, हर कुंजी का एक यूनीक "बच्चा" है (मुख्य आईडी) की वैल्यू. इसके बाद माइक्रोगेटवे इनका इस्तेमाल करता है अनुमति टोकन की पुष्टि करने की कुंजियां. अगर टोकन की पुष्टि नहीं हो पाती है, तो माइक्रोगेटवे देखें कि क्या कुंजी के सेट में कोई पुरानी कुंजी है और उस कुंजी को आज़माता है. फ़ॉर्मैट दी गई कुंजी, JSON Web Key (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" } ] }
"पहले नहीं" को कॉन्फ़िगर करना देरी
3.1.5 और उससे पहले के वर्शन के लिए, rotatekey
निर्देश से जनरेट की गई नई निजी कुंजी ने
को लागू किया गया और जनरेट किए गए नए टोकन पर नई निजी कुंजी से हस्ताक्षर किए गए. हालांकि,
नई सार्वजनिक कुंजी, हर 10 मिनट में सिर्फ़ Edge Microgateway के इंस्टेंस के लिए उपलब्ध कराई गई थी (डिफ़ॉल्ट रूप से)
जब माइक्रोगेटवे कॉन्फ़िगरेशन को रीफ़्रेश किया गया था. टोकन साइन करने के बीच इस अंतर की वजह से
और माइक्रोगेटवे इंस्टेंस रीफ़्रेश नहीं होगा, तो सबसे नई कुंजी से साइन किए गए टोकन इस समय तक अस्वीकार कर दिए जाएंगे
सभी इंस्टेंस पर सार्वजनिक नई कुंजी मिली हो.
ऐसे मामलों में जहां कई माइक्रोगेटवे इंस्टेंस मौजूद हों, वहां कभी-कभी सार्वजनिक पासकोड लैग पैदा होता है स्थिति 403 के साथ थोड़ी-थोड़ी देर में रनटाइम की गड़बड़ियों में, क्योंकि टोकन की पुष्टि किसी एक लेकिन किसी दूसरे इंस्टेंस पर तब तक फ़ेल हो जाता है, जब तक सभी इंस्टेंस रीफ़्रेश नहीं हो जाते.
वर्शन 3.1.6 में शुरू होने के बाद, rotatekey
निर्देश पर एक नया फ़्लैग आपको लागू होने में देरी तय करने की सुविधा देगा
निजी पासकोड को असरदार बनाने के लिए, जिससे सभी माइक्रोगेटवे इंस्टेंस को रीफ़्रेश होने में समय लगता है
और नया सार्वजनिक पासकोड मिलेगा. नया फ़्लैग --nbf
है, जिसका मतलब है "पहले नहीं".
इस फ़्लैग के लिए पूर्णांक वैल्यू का इस्तेमाल किया जाता है, यानी देरी होने में मिनट की संख्या.
यहां दिए गए उदाहरण में, देरी को 15 मिनट पर सेट किया गया है:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \ --nbf 15
ध्यान दें कि देरी को config_change_poll_internal
कॉन्फ़िगरेशन सेटिंग से ज़्यादा पर सेट करना एक अच्छा तरीका है,
यह अवधि डिफ़ॉल्ट रूप से 10 मिनट होती है. Edgemicro विशेषताएं भी देखें.
डाउनलोड की गई प्रॉक्सी फ़िल्टर की जा रही हैं
डिफ़ॉल्ट रूप से 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 Microgateway इस प्रॉडक्ट के साथ काम करता है कॉन्फ़िगरेशन.
डीबग करना और समस्या हल करना
डीबगर से कनेक्ट करना
एज माइक्रोगेटवे को डीबगर की मदद से चलाया जा सकता है. जैसे, node-inspector. यह इनके लिए काम का है का इस्तेमाल करें.
- डीबग मोड में Edge माइक्रोगेटवे को रीस्टार्ट करें. ऐसा करने के लिए,
DEBUG=*
को इसमें जोड़ेंstart
कमांड की शुरुआत:DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
डीबग आउटपुट को किसी फ़ाइल में डायरेक्ट करने के लिए, इस निर्देश का इस्तेमाल किया जा सकता है:
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- अपना डीबगर शुरू करें और डीबग करने की प्रोसेस के लिए इसे पोर्ट नंबर पर सुनने के लिए सेट करें.
- इसके बाद, एज माइक्रोगेटवे कोड इस्तेमाल करके ब्रेकपॉइंट सेट किया जा सकता है, वॉच एक्सप्रेशन सेट किए जा सकते हैं, और वगैरह.
डीबग मोड से जुड़े स्टैंडर्ड Node.js फ़्लैग तय किए जा सकते हैं. उदाहरण के लिए,
--nolazy
से, एसिंक्रोनस कोड को डीबग करने में मदद मिलती है.
लॉग फ़ाइलों की जांच की जा रही है
अगर आपको समस्याएं आ रही हैं, तो परफ़ॉर्मेंस की जानकारी और गड़बड़ी देखने के लिए लॉग फ़ाइलों की जांच ज़रूर कर लें जानकारी. ज़्यादा जानकारी के लिए, लॉग फ़ाइलें मैनेज करना देखें.
एपीआई पासकोड की सुरक्षा के तरीके का इस्तेमाल करना
API (एपीआई) कुंजियों की मदद से, Edge के लिए अनुरोध करने वाले क्लाइंट की पुष्टि आसानी से की जा सकती है माइक्रोगेटवे. उपभोक्ता कुंजी (इसे Client-ID भी कहा जाता है) वैल्यू को कॉपी करके, एपीआई पासकोड हासिल किया जा सकता है Apigee Edge प्रॉडक्ट से मिला है जिसमें Edge Microgateway की पुष्टि करने वाला प्रॉक्सी शामिल है.
कुंजियों को कैश मेमोरी में सेव करना
एपीआई पासकोड, कैश मेमोरी में सेव किए गए बेयरर टोकन के लिए इस्तेमाल किए जाते हैं. आप सेटिंग करके कैश मेमोरी में सेव होने की सुविधा बंद कर सकते हैं
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"
प्रॉक्सी अनुरोधों के साथ API कुंजियों का उपयोग करने के बारे में ज़्यादा जानकारी के लिए, सिक्योर एज माइक्रोगेटवे.
अपस्ट्रीम रिस्पॉन्स कोड चालू करें
डिफ़ॉल्ट रूप से, oauth
प्लगिन सिर्फ़ 4xx गड़बड़ी के स्टेटस कोड दिखाता है, अगर
तो रिस्पॉन्स, 200 स्टेटस नहीं है. इस व्यवहार को बदला जा सकता है, ताकि यह हमेशा
गड़बड़ी के हिसाब से, सटीक 4xx या 5xx कोड दिखाता है.
इस सुविधा को चालू करने के लिए, oauth.useUpstreamResponse: true
जोड़ें
प्रॉपर्टी को आपके Edge Microgateway कॉन्फ़िगरेशन के साथ जोड़ा जा सकता है. उदाहरण के लिए:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
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: बेसिक पुष्टि हेडर में क्रेडेंशियल भेजना
क्लाइंट क्रेडेंशियल को बुनियादी पुष्टि करने वाले हेडर के तौर पर भेजें और
फ़ॉर्म पैरामीटर के रूप में 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
प्रॉपर्टी. इनमें से किसी भी एक का इस्तेमाल किया जा सकता है. ध्यान दें कि expires_in
सेकंड में बताया गया पूर्णांक मान.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": 1799 }
रीफ़्रेश टोकन पाने का तरीका
रीफ़्रेश टोकन पाने के लिए, इसके /token
एंडपॉइंट पर एपीआई कॉल करें
edgemicro-auth
प्रॉक्सी. आपको 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" }'
एपीआई, ऐक्सेस टोकन और रीफ़्रेश टोकन दिखाता है. जवाब ऐसा दिखता है यह. ध्यान दें कि
expires_in
की वैल्यू पूर्णांक होती हैं और इन्हें सेकंड में दिखाया जाता है.{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": 108, "refresh_token": "your-refresh-token", "refresh_token_expires_in": 431, "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" }
हमेशा के लिए निगरानी करना
Forever, एक Node.js टूल है प्रोसेस बंद होने या कोई गड़बड़ी होने पर, Node.js ऐप्लिकेशन को अपने-आप रीस्टार्ट करेगा. किनारे Microgateway में एक forever.json फ़ाइल होती है, जिसे आप कॉन्फ़िगर कर सकते हैं कि आप कितनी Edge माइक्रोगेटवे को कितनी बार और कितने अंतरालों पर रीस्टार्ट किया जाना चाहिए. यह फ़ाइल किसी हमेशा के लिए ऐसी सेवा जिसे हमेशा के लिए मॉनिटर कहा जाता है, जो हमेशा के लिए मैनेज करती है प्रोग्रामेटिक रूप से.
forever.json फ़ाइल, Edge Microgateway रूट इंस्टॉल में मिल सकती है डायरेक्ट्री. देखें Edge Microgateway कहां इंस्टॉल किया गया है. कॉन्फ़िगरेशन विकल्पों के बारे में जानकारी पाने के लिए, यहां जाएं: हमेशा के लिए मॉनिटर करने से जुड़े दस्तावेज़.
edgemicro forever
कमांड में फ़्लैग शामिल होते हैं, जिनकी मदद से आप इनकी जगह की जानकारी दे सकते हैं
forever.json
फ़ाइल (-f
फ़्लैग) पर क्लिक करके, हमेशा के लिए मॉनिटरिंग की सुविधा चालू/बंद करें
प्रोसेस (-a
फ़्लैग). उदाहरण के लिए:
edgemicro forever -f ~/mydir/forever.json -a start
ज़्यादा जानकारी के लिए, सीएलआई रेफ़रंस में हमेशा के लिए मॉनिटरिंग करना लेख पढ़ें.
कॉन्फ़िगरेशन फ़ाइल का एंडपॉइंट तय करना
अगर आपके पास एक से ज़्यादा Edge Microgateway इंस्टेंस है, तो आपके पास उनके कॉन्फ़िगरेशन को मैनेज करने का विकल्प है ट्रैक किया जा सकता है. ऐसा करने के लिए एक एचटीटीपी एंडपॉइंट तय किया जा सकता है, जहां Edge Micro यह कर सकता है इसकी कॉन्फ़िगरेशन फ़ाइल डाउनलोड करेगा. Edge Microsoft का इस्तेमाल शुरू करने पर, इस एंडपॉइंट को सेट किया जा सकता है -u फ़्लैग का इस्तेमाल करना चाहिए.
उदाहरण के लिए:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
जहां mgconfig एंडपॉइंट आपकी कॉन्फ़िगरेशन फ़ाइल की सामग्री दिखाता है. यह फ़ाइल है
यह डिफ़ॉल्ट रूप से, ~/.edgemicro
में मौजूद होती है और इसका नाम रखने का तरीका ऐसा है:
org-env-config.yaml
.
टीसीपी कनेक्शन के डेटा को बफ़र करने की सुविधा बंद की जा रही है
डेटा बफ़र होने की सुविधा को बंद करने के लिए, nodelay
कॉन्फ़िगरेशन एट्रिब्यूट का इस्तेमाल किया जा सकता है
Edge Microgateway के ज़रिए इस्तेमाल किए जाने वाले टीसीपी कनेक्शन.
डिफ़ॉल्ट रूप से, टीसीपी कनेक्शन Nagle का इस्तेमाल करते हैं
एल्गोरिदम का इस्तेमाल करें. nodelay
को true
पर सेट करके,
इस व्यवहार को बंद कर देता है (हर बार डेटा तुरंत चालू हो जाएगा
socket.write()
को कॉल किया जाता है). Node.js के बारे में भी जानें
दस्तावेज़ में ज़्यादा जानकारी देखें.
nodelay
को चालू करने के लिए, Edge माइक्रो कॉन्फ़िगरेशन फ़ाइल में इस तरह से बदलाव करें:
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
Edge माइक्रोगेटवे, स्टैंडअलोन मोड में चल रहा है
Edge Microgateway को किसी भी डिवाइस से पूरी तरह से डिसकनेक्ट किया जा सकता है Apigee Edge डिपेंडेंसी. 'एज माइक्रोगेटवे' को चलाने और टेस्ट करने की सुविधा के तौर पर 'स्टैंडअलोन मोड' कहा जाता है का इस्तेमाल किया जा सकता है.
स्टैंडअलोन मोड में, ये सुविधाएं काम नहीं करती हैं, क्योंकि इनके लिए कनेक्शन की ज़रूरत होती है Apigee Edge पर:
- OAuth और API कुंजी
- अनुरोध भेजने की तय सीमा (कोटा)
- Analytics
दूसरी ओर, कस्टम प्लगिन और स्पाइक गिरफ़्तारी सामान्य रूप से काम करते हैं, क्योंकि वे ऐसा नहीं करते
इसके लिए, Apigee Edge से कनेक्ट होना ज़रूरी है. इसके अलावा, extauth
नाम के एक नए प्लगिन की मदद से,
यह नीति स्टैंडअलोन मोड में रहते हुए, किसी JWT से माइक्रोगेटवे पर एपीआई कॉल की अनुमति देती है.
गेटवे को कॉन्फ़िगर करना और शुरू करना
Edge Microgateway को स्टैंडअलोन मोड में चलाने के लिए:
- इस नाम से एक कॉन्फ़िगरेशन फ़ाइल बनाएं:
$HOME/.edgemicro/$ORG
-
$ENV-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 -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
कहां:
- $ORG "संगठन" है दिया गया है, जिसका उपयोग आपने कॉन्फ़िगरेशन फ़ाइल नाम में किया था.
- $ENV "env" है वह नाम जिसे आपने कॉन्फ़िगरेशन फ़ाइल में इस्तेमाल किया है नाम.
- $LOCAL_PROXY_NAME बनाई जाने वाली लोकल प्रॉक्सी का नाम है. Google Analytics 4 पर माइग्रेट करने के लिए, अपनी पसंद का कोई भी नाम डालें.
- $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
फ़ाइल में है, इसलिए आप "छूटी हुई_अनुमति" मिलना गड़बड़ी. यह प्लगिन ऐसे JWT की पुष्टि करता है जो अनुमति में मौजूद होना चाहिए एपीआई कॉल का हेडर. अगले सेक्शन में, आपको एक JWT मिलेगा, जिससे एपीआई कॉल किए जा सकेंगे पर सेट किया जा सकता है.
उदाहरण के लिए: ऑथराइज़ेशन टोकन पाना
नीचे दिए गए उदाहरण में, Apigee Edge (edgemicro-auth/jwkPublicKeys
) पर Edge Microgateway JWT एंडपॉइंट से JWT पाने का तरीका बताया गया है.
यह एंडपॉइंट तब डिप्लॉय किया जाता है, जब Edge माइक्रोगेटवे का स्टैंडर्ड सेटअप और कॉन्फ़िगरेशन किया जाता है.
Apigee एंडपॉइंट से JWT पाने के लिए, आपको पहले स्टैंडर्ड Edge Microgateway का सेटअप करना होगा और
इंटरनेट से कनेक्ट होना चाहिए. यहां Apigee एंडपॉइंट का इस्तेमाल, उदाहरण के तौर पर किया जाता है
ऐसा करना ज़रूरी नहीं है. अगर आप चाहें, तो किसी दूसरे JWT टोकन एंडपॉइंट का इस्तेमाल किया जा सकता है. अगर ऐसा किया जाता है, तो आपको
एपीआई की मदद से इसे अपडेट किया जा सकता है.
edgemicro-auth/jwkPublicKeys
एंडपॉइंट का इस्तेमाल करके टोकन पाने का तरीका यहां बताया गया है:.
- आपको मानकों का पालन करना होगा
edgemicro-auth
प्रॉक्सी को डिप्लॉय करने के लिए, एज माइक्रोगेटवे का सेटअप और कॉन्फ़िगरेशन आपके संगठन या एनवायरमेंट के लिए, Apigee Edge पर उपलब्ध है. अगर आपने यह चरण पहले कर लिया है, तो आपको इसे दोहराने की ज़रूरत नहीं है. - अगर आपने Edge Microgateway को Apigee Cloud में डिप्लॉय किया है, तो आपका डिवाइस इंटरनेट से कनेक्ट होना ज़रूरी है. इससे आपको इस एंडपॉइंट से जेडब्ल्यूटी मिलता है.
-
Edge माइक्रोगेटवे को बंद करें:
edgemicro stop
- आपकी पहले बनाई गई कॉन्फ़िगरेशन फ़ाइल में (
$HOME/.edgemicro
/org-env-config.yaml
),extauth:publickey_url
को पॉइंट करें एट्रिब्यूट की वैल्यू के तौर परedgemicro-auth/jwkPublicKeys
एंडपॉइंट का इस्तेमाल किया जा सकता है. उदाहरण के लिए:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
कॉन्फ़िगरेशन फ़ाइल के नाम में इस्तेमाल किए गए संगठन या एनवायरमेंट के नामों का इस्तेमाल करके, Edge Microgateway को रीस्टार्ट करें. उदाहरण के लिए:
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
-
ऑथराइज़ेशन एंडपॉइंट से JWT टोकन पाएं. क्योंकि आप
edgemicro-auth/jwkPublicKeys
का इस्तेमाल कर रहे हैं एंडपॉइंट के रूप में, आप इस सीएलआई कमांड का इस्तेमाल कर सकते हैं:
एज माइक्रोगेटवे के लिए JWT जनरेट करने के लिए, edgemicro token
कमांड का इस्तेमाल किया जा सकता है या
एपीआई. उदाहरण के लिए:
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
कहां:
- your_org, आपके उस Apigee संगठन का नाम है जिसके लिए पहले आपने साइन इन किया था कॉन्फ़िगर किया गया 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 क्लस्टर में साइडकार प्रॉक्सी के तौर पर काम करता है. हर माइक्रोगेटवे इंस्टेंस बात करता है इसकी कंपैनियन सेवा पर सिर्फ़ एक एंडपॉइंट तक:
इस स्टाइल के आर्किटेक्चर का एक फ़ायदा यह है कि एज माइक्रोगेटवे एपीआई उपलब्ध कराता है किसी कंटेनर एनवायरमेंट में डिप्लॉय की गई अलग-अलग सेवाओं के लिए मैनेजमेंट, जैसे कि Kubernetes क्लस्टर में.
लोकल प्रॉक्सी मोड कॉन्फ़िगर करना
Edge माइक्रोगेटवे को लोकल प्रॉक्सी मोड में चलाने के लिए, उसे कॉन्फ़िगर करें:
- अपने लोकल कॉन्फ़िगरेशन एनवायरमेंट को सेट अप करने के लिए,
edgemicro init
चलाएं जैसा कि एक सामान्य Edge Microgateway सेटअप में किया जाता है. इन्हें भी देखें Edge Microgateway को कॉन्फ़िगर करें. edgemicro configure
चलाएं, जैसा कि सामान्य Edge Microgateway सेटअप में किया जाता है प्रक्रिया. उदाहरण के लिए:edgemicro configure -o your_org -e your_env -u your_apigee_username
यह निर्देश edgemicro-auth नीति को Edge पर डिप्लॉय करता है और एक कुंजी देता है और यह सीक्रेट है कि आपको माइक्रोगेटवे शुरू करना होगा. अगर आपको मदद चाहिए, तो देखें Edge Microgateway को कॉन्फ़िगर करें.
- Apigee Edge पर, एपीआई प्रॉडक्ट बनाएं और इन ज़रूरी कॉन्फ़िगरेशन के साथ ऐसा करें
शर्तें (अन्य सभी कॉन्फ़िगरेशन अपनी पसंद के मुताबिक मैनेज किए जा सकते हैं):
- आपको प्रॉडक्ट में Edgemicro-auth प्रॉक्सी जोड़ना ज़रूरी है. यह प्रॉक्सी
आपके
edgemicro configure
दौड़ने पर, अपने-आप डिप्लॉय हो गया. - आपको एक संसाधन पाथ देना ज़रूरी है. Apigee का सुझाव है कि आप इस पाथ को
प्रॉडक्ट:
/**
. ज़्यादा जानने के लिए, संसाधन पाथ के व्यवहार को कॉन्फ़िगर करना देखें. एपीआई बनाएं' भी देखें प्रॉडक्ट के बारे में ज़्यादा जानें.
- आपको प्रॉडक्ट में 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":"" }
सिंक करने वाले का इस्तेमाल करना
यह अनुभाग बताता है कि सिंकर का उपयोग कैसे किया जाए, यह एक वैकल्पिक सुविधा है, जो Edge Microgteway को बेहतर बनाता है, जिससे वह अपने असर को कम करता है का इस्तेमाल करें. के साथ सिंक करने वाला इंस्टेंस चल रहा हो, अलग-अलग नोड पर चल रहे अन्य Edge Microgateway इंस्टेंस वे सीधे इस डेटाबेस से अपना कॉन्फ़िगरेशन हासिल कर सकते हैं.
फ़िलहाल, सिंक्रोनाइज़र की सुविधा Redis 5.0.x के साथ काम करती है.
सिंक करने वाला क्या है?
इस सिंकर की मदद से, एज माइक्रोगेटवे को बेहतर तरीके से तैयार किया जा सकता है. इससे यह पक्का करने में मदद मिलती है कि Edge Microgateway का हर इंस्टेंस एक ही कॉन्फ़िगरेशन का इस्तेमाल करता हो और इंटरनेट बंद होने पर, Edge Microgateway के इंस्टेंस चालू हो सकते हैं और काम कर सकते हैं सही तरीके से.
डिफ़ॉल्ट रूप से, Edge Microgateway के इंस्टेंस ऐसे होने चाहिए जो Apigee Edge से इनके साथ कम्यूनिकेट कर पाएं वे एपीआई प्रॉक्सी और एपीआई प्रॉडक्ट कॉन्फ़िगरेशन जैसे कॉन्फ़िगरेशन डेटा को वापस पा सकते हैं और उसे रीफ़्रेश कर सकते हैं. अगर Edge की मदद से इंटरनेट कनेक्शन में रुकावट आती है, तो माइक्रोगेटवे इंस्टेंस पर फ़ंक्शन किया जाएगा, क्योंकि सबसे नया कॉन्फ़िगरेशन डेटा कैश मेमोरी में सेव किया जाता है. हालांकि, नए माइक्रोगेटवे इंस्टेंस एक आसान कनेक्शन के बिना शुरू नहीं किया जा सकता. इसके अलावा, यह इंटरनेट का इस्तेमाल करने कॉन्फ़िगरेशन के साथ चलने वाले एक या ज़्यादा माइक्रोगेटवे इंस्टेंस की वजह से रुकावट ऐसी जानकारी जो अन्य इंस्टेंस के साथ सिंक न हो.
Edge माइक्रोगेटवे सिंकर, एज माइक्रोगेटवे के लिए एक वैकल्पिक तरीका है
का इस्तेमाल करता है.
Apigee Edge को कॉल से मिले कॉन्फ़िगरेशन के डेटा में यह जानकारी शामिल है: jwk_public_keys
कॉल,
jwt_public_key
कॉल, बूटस्ट्रैप कॉल, और एपीआई प्रॉडक्ट कॉल.
इस सिंकर की मदद से, Edge माइक्रोगेट वे सभी काम कर सकते हैं
ठीक से प्रारंभ होने और सिंक में बने रहने के लिए अलग-अलग नोड पर चल रहे इंस्टेंस
Edge Microgateway और Apigee Edge के बीच के इंटरनेट कनेक्शन में रुकावट आ रही है.
सिंकर, Edge Microgateway का खास तौर पर कॉन्फ़िगर किया गया इंस्टेंस है. कॉन्टेंट का मकसद Apigee Edge (इसे कॉन्फ़िगर किया जा सकता है) को पोल करना है, कॉन्फ़िगरेशन डेटा वापस पाना है, और इसे स्थानीय Redis डेटाबेस में लिखो. सिंक करने वाला इंस्टेंस खुद ही एपीआई प्रॉक्सी को प्रोसेस नहीं कर सकता किया जा सकता है. अलग-अलग नोड पर चलने वाले एज माइक्रोगेटवे के अन्य इंस्टेंस कॉन्फ़िगर किया जाना चाहिए, ताकि Apigee के बजाय, Redis डेटाबेस से कॉन्फ़िगरेशन डेटा हासिल किया जा सके किनारे. क्योंकि सभी माइक्रोगेटवे इंस्टेंस अपना कॉन्फ़िगरेशन डेटा लोकल से हासिल करते हैं है, तो वे इंटरनेट की स्थिति में भी एपीआई अनुरोधों को शुरू और प्रोसेस कर सकते हैं समस्या है.
सिंक करने वाले इंस्टेंस को कॉन्फ़िगर करना
org-env/config.yaml
फ़ाइल में इसके लिए, यह कॉन्फ़िगरेशन जोड़ें
वह Edge Microgateway इंस्टॉलेशन जिसे आप सिंक करने वाले के रूप में इस्तेमाल करना चाहते हैं:
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 1 redisBasedConfigCache: true
उदाहरण के लिए:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 1 redisBasedConfigCache: true
विकल्प | ब्यौरा |
---|---|
redisHost |
वह होस्ट जहां आपका Redis इंस्टेंस चल रहा है. डिफ़ॉल्ट: 127.0.0.1 |
redisPort |
Redis इंस्टेंस का पोर्ट. डिफ़ॉल्ट: 6379 |
redisDb |
इस्तेमाल करने के लिए Redis DB. डिफ़ॉल्ट: 0 |
redisPassword |
आपके डेटाबेस का पासवर्ड. |
आखिर में, कॉन्फ़िगरेशन फ़ाइल को सेव करें और Edge Microgateway इंस्टेंस शुरू करें. यह शुरू हो जाएगा पोलिंग Apigee Edge और डाउनलोड किए गए कॉन्फ़िगरेशन का डेटा, Redis डेटाबेस में सेव करना.
रेगुलर Edge Microgateway इंस्टेंस कॉन्फ़िगर करना
सिंक करने वाले टूल की मदद से, अतिरिक्त Edge Microgateway नोड कॉन्फ़िगर किए जा सकते हैं का इस्तेमाल करें. हालांकि, आपको ये इंस्टेंस अपने कॉन्फ़िगरेशन डेटा को Redis डेटाबेस से पाने के बजाय Apigee Edge.
हर अतिरिक्त एज माइक्रोगेटवे नोड में नीचे दिया गया कॉन्फ़िगरेशन जोड़ें
org-env/config.yaml
फ़ाइल. ध्यान दें कि synchronizerMode
प्रॉपर्टी को 0
पर सेट किया गया है. यह प्रॉपर्टी, इंस्टेंस को सामान्य ऑपरेट करने के लिए सेट करती है
Edge Microgateway इंस्टेंस, जो API प्रॉक्सी ट्रैफ़िक को प्रोसेस करता है और इंस्टेंस को
जो Redis डेटाबेस से लिया गया है.
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 0 redisBasedConfigCache: true
उदाहरण के लिए:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 0 redisBasedConfigCache: true
कॉन्फ़िगरेशन प्रॉपर्टी
सिंक करने वाले टूल का इस्तेमाल करने के लिए, नीचे दी गई कॉन्फ़िगरेशन प्रॉपर्टी जोड़ी गई हैं:
एट्रिब्यूट | वैल्यू | ब्यौरा |
---|---|---|
edge_config.synchronizerMode |
0 या 1 | अगर 0 (डिफ़ॉल्ट) Edge माइक्रोगेटवे अपने स्टैंडर्ड मोड में काम करता है. अगर 1 है, तो सिंक करने वाले के तौर पर काम करने के लिए, Edge Microgateway इंस्टेंस को चालू करें. इसमें मोड में, इंस्टेंस Apigee Edge से कॉन्फ़िगरेशन डेटा लेकर, उसे एक स्थानीय Redis डेटाबेस है. यह इंस्टेंस, एपीआई प्रॉक्सी अनुरोधों को प्रोसेस नहीं कर सकता; यह इसका मकसद सिर्फ़ कॉन्फ़िगरेशन डेटा के लिए Apigee Edge को पोल करना और उसे स्थानीय पते पर लिखना है डेटाबेस. इसके बाद, आपको डेटाबेस से पढ़ने के लिए अन्य माइक्रोगेटवे इंस्टेंस कॉन्फ़िगर करने होंगे. |
edge_config.redisBasedConfigCache |
सही या गलत | अगर सही है, तो Edge Microgateway इंस्टेंस अपना कॉन्फ़िगरेशन डेटा
Apigee Edge के बजाय Redis डेटाबेस. Redis डेटाबेस एक ही होना चाहिए
जिस पर लिखने के लिए सिंकर को कॉन्फ़िगर किया गया है. अगर Redis डेटाबेस उपलब्ध नहीं है या
अगर डेटाबेस खाली है, तो माइक्रोगेटवे मौजूदा cache-config.yaml को खोजता है
फ़ाइल के कॉन्फ़िगरेशन के लिए.
गलत होने पर, Edge माइक्रोगेटवे इंस्टेंस यहां से कॉन्फ़िगरेशन डेटा फ़ेच करता है हमेशा की तरह Apigee Edge. |
edgemicro.config_change_poll_interval |
समय अंतराल, सेकंड में | सिंक करने वाले व्यक्ति के लिए, Apigee Edge से डेटा पाने के लिए पोलिंग का इंटरवल तय करता है. |
प्लगिन के लिए बाहर रखने वाले यूआरएल कॉन्फ़िगर करना
आप प्लगिन की प्रोसेसिंग को स्किप करने के लिए, माइक्रोगेटवे को कॉन्फ़िगर कर सकते हैं सेट किए गए यूआरएल शामिल हैं. आप इन "बहिष्कृत करें" को कॉन्फ़िगर कर सकते हैं यूआरएल को दुनिया भर में (सभी प्लगिन के लिए) का इस्तेमाल करें.
उदाहरण के लिए:
... edgemicro: ... plugins: excludeUrls: '/hello,/proxy_one' # global exclude urls sequence: - oauth - json2xml - quota json2xml: excludeUrls: '/hello/xml' # plugin level exclude urls ...
इस उदाहरण में, प्लगिन
पाथ /hello
या /proxy_one
. इसके अलावा, json2xml
/hello/xml
वाले एपीआई के पाथ में प्लगिन को छोड़ दिया जाएगा.
एनवायरमेंट वैरिएबल वैल्यू के साथ कॉन्फ़िगरेशन एट्रिब्यूट सेट करना
कॉन्फ़िगरेशन में टैग का इस्तेमाल करके, एनवायरमेंट वैरिएबल तय किए जा सकते हैं फ़ाइल से लिए जाते हैं. बताए गए एनवायरमेंट वैरिएबल के टैग, असल एनवायरमेंट से बदल दिए गए हैं वैरिएबल वैल्यू. बदलाव सिर्फ़ मेमोरी में सेव किए जाते हैं. ओरिजनल मेमोरी में नहीं कॉन्फ़िगरेशन या कैश फ़ाइलें.
इस उदाहरण में, key
एट्रिब्यूट को
TARGETS_SSL_CLIENT_KEY
एनवायरमेंट वैरिएबल वगैरह.
targets: - ssl: client: key: <E>TARGETS_SSL_CLIENT_KEY</E> cert: <E>TARGETS_SSL_CLIENT_CERT</E> passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>
इस उदाहरण में, <n>
टैग का इस्तेमाल पूर्णांक वैल्यू को दिखाने के लिए किया गया है. सिर्फ़ अच्छा
पूर्णांक इस्तेमाल किए जा सकते हैं.
edgemicro: port: <E><n>EMG_PORT</n></E>
इस उदाहरण में, <b>
टैग का इस्तेमाल बूलियन (
जो सही है या
false) मान का इस्तेमाल करें.
quotas: useRedis: <E><b>EMG_USE_REDIS</b></E>