आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
एपीआई पासकोड पाने का तरीका
यहां दिए गए उदाहरण में, एपीआई पासकोड पाने का तरीका बताया गया है. इस पासकोड का इस्तेमाल, Apigee Adapter for Envoy के ज़रिए प्रॉक्सी की गई टारगेट सेवा के एपीआई कॉल की पुष्टि करने के लिए किया जा सकता है.
1. Apigee में लॉग इन करें
- किसी ब्राउज़र में Apigee का यूज़र इंटरफ़ेस (यूआई) खोलें.
- यूज़र इंटरफ़ेस (यूआई) में जाने के बाद, उसी संगठन को चुनें जिसका इस्तेमाल आपने Apigee Adapter for Envoy को कॉन्फ़िगर करने के लिए किया था.
2. डेवलपर बनाना
टेस्टिंग के लिए, किसी मौजूदा डेवलपर का इस्तेमाल किया जा सकता है. इसके अलावा, यहां दिए गए तरीके से नया डेवलपर बनाया जा सकता है:
- साइड नेविगेशन मेन्यू में, पब्लिश करें > डेवलपर को चुनें.
- + डेवलपर पर क्लिक करें.
- नया डेवलपर बनाने के लिए, डायलॉग बॉक्स में जानकारी भरें. डेवलपर के तौर पर, अपनी पसंद का कोई भी नाम/ईमेल पता इस्तेमाल किया जा सकता है.
3. एपीआई प्रॉडक्ट बनाना
प्रॉडक्ट बनाने का तरीका जानने के लिए, यहाँ दिया गया उदाहरण देखें. यह भी देखें एपीआई प्रॉडक्ट कॉन्फ़िगरेशन के बारे में जानकारी.
- साइड नेविगेशन मेन्यू में, पब्लिश करें > एपीआई प्रॉडक्ट चुनें.
- + एपीआई प्रॉडक्ट पर क्लिक करें.
- प्रॉडक्ट की जानकारी वाले पेज पर यह जानकारी भरें. जब तक आपको ऐसा करने के लिए न कहा जाए, तब तक सेव करें पर क्लिक न करें.
- Apigee रिमोट सेवा के टारगेट सेक्शन में, Apigee रिमोट सेवा का टारगेट जोड़ें पर क्लिक करें.
- Apigee रिमोट सेवा के टारगेट डायलॉग में, ये वैल्यू जोड़ें:
एट्रिब्यूट वैल्यू ब्यौरा टारगेट का नाम टारगेट सेवा का नाम डालें. उदाहरण के लिए: httpbin.orgयह टारगेट एंडपॉइंट, Envoy प्रॉक्सी के ज़रिए फ़्रंट किया जाता है. एपीआई प्रॉक्सी remote-serviceEnvoy Adapter इंस्टॉल करने के दौरान, Apigee पर उपलब्ध कराई गई remote-serviceप्रॉक्सी.पाथ किसी खास पाथ से मैच करने के लिए, /resource_pathडालें. उदाहरण के लिए:/httpbin.टारगेट एंडपॉइंट से मैच करने के लिए अनुरोध का पाथ. इस पाथ पर किए गए एपीआई प्रॉक्सी कॉल, इस एपीआई प्रॉडक्ट से मेल खाएंगे. Edge Public या Private Cloud: नीचे दिए गए स्क्रीनशॉट में,
httpbin.orgटारगेट के लिए, डायलॉग की सही तरीके से कॉन्फ़िगर की गई सेटिंग दिखाई गई हैं. यह Apigee Edge Public या Private Cloud के लिए सही कॉन्फ़िगरेशन है.
- सेव करें पर क्लिक करें.
| फ़ील्ड | वैल्यू |
|---|---|
| नाम | httpbin-product
|
| डिसप्ले नेम | httpbin product
|
| परिवेश | your_environment
इसे उस एनवायरमेंट पर सेट करें जिसका इस्तेमाल आपने |
| ऐक्सेस | Private
|
| Quota | हर एक मिनट में पांच अनुरोध
कोटा के बारे में जानकारी भी देखें. |
4. डेवलपर ऐप्लिकेशन बनाना
- साइड नेविगेशन मेन्यू में, पब्लिश करें > ऐप्लिकेशन को चुनें.
- + ऐप्लिकेशन पर क्लिक करें.
- डेवलपर ऐप्लिकेशन पेज पर यह जानकारी भरें. जब तक निर्देश न मिले, तब तक सेव न करें.
- इसके बाद, ऐप्लिकेशन में दो प्रॉडक्ट जोड़ें:
- सबसे पहले, क्रेडेंशियल सेक्शन में जाकर + प्रॉडक्ट जोड़ें पर क्लिक करें. इसके बाद, अभी-अभी कॉन्फ़िगर किया गया प्रॉडक्ट चुनें: httpbin-product.
- इसके बाद, remote-service प्रॉडक्ट जोड़ें. Apigee को चालू करने पर, यह प्रॉडक्ट अपने-आप बन गया था.
- बनाएं पर क्लिक करें.
- क्रेडेंशियल में जाकर, कुंजी के बगल में मौजूद, दिखाएं पर क्लिक करें.
- उपयोगकर्ता कुंजी की वैल्यू कॉपी करें. यह वैल्यू, एपीआई पासकोड है. इसका इस्तेमाल,
httpbinसेवा को एपीआई कॉल करने के लिए किया जाएगा.
| नाम | httpbin-app
|
| डिसप्ले नेम | httpbin app
|
| डेवलपर | पहले से बनाया गया डेवलपर चुनें या सूची में से कोई डेवलपर चुनें. |
एपीआई प्रॉडक्ट के बारे में जानकारी
एपीआई प्रॉडक्ट, Apigee Remote Service के लिए मुख्य कंट्रोल पॉइंट होते हैं. एपीआई प्रॉडक्ट बनाते समय, उसे किसी टारगेट सेवा से बाइंड किया जाता है. इससे एक ऐसी नीति बनती है जो उन सभी अनुरोधों पर लागू होगी जिन्हें हैंडल करने के लिए, Apigee Adapter for Envoy को कॉन्फ़िगर किया गया है.
एपीआई प्रॉडक्ट की परिभाषा
Apigee में एपीआई प्रॉडक्ट तय करते समय, कई पैरामीटर सेट किए जा सकते हैं. इनका इस्तेमाल अनुरोधों का आकलन करने के लिए किया जाएगा:
- टारगेट
- अनुरोध का पाथ
- कोटा
- OAuth के दायरे
रिमोट सर्विस के टारगेट
एपीआई प्रॉडक्ट की परिभाषा, किसी अनुरोध पर तब लागू होगी, जब अनुरोध, टारगेट बाइंडिंग (उदाहरण के लिए, httpbin.org) और अनुरोध के पाथ (उदाहरण के लिए, /httpbin) दोनों से मेल खाता हो. संभावित टारगेट की सूची, एपीआई प्रॉडक्ट पर एट्रिब्यूट के तौर पर सेव की जाती है.
डिफ़ॉल्ट रूप से, Apigee Remote Service, Envoy के खास :authority (host) हेडर की जांच, टारगेट की अपनी सूची के हिसाब से करता है. हालांकि, इसे अन्य हेडर का इस्तेमाल करने के लिए कॉन्फ़िगर किया जा सकता है.
एपीआई रिसॉर्स पाथ
पाथ, इन नियमों के मुताबिक मैच होना चाहिए:
- सिर्फ़ एक स्लैश (
/) किसी भी पाथ से मेल खाता है. *किसी भी जगह पर मान्य होता है और यह किसी सेगमेंट (स्लैश के बीच) में मैच करता है.**आखिर में मान्य होता है और लाइन के आखिर तक किसी भी चीज़ से मेल खाता है.
कोटा
कोटा से पता चलता है कि कोई ऐप्लिकेशन, एक घंटे, दिन, हफ़्ते या महीने में किसी एपीआई को कितने अनुरोध मैसेज भेज सकता है. जब कोई ऐप्लिकेशन, कोटे की सीमा तक पहुंच जाता है, तो बाद के एपीआई कॉल अस्वीकार कर दिए जाते हैं.
कोटा इस्तेमाल करने के उदाहरणकोटा की मदद से, यह तय किया जा सकता है कि कोई क्लाइंट किसी सेवा के लिए, तय समय में कितने अनुरोध कर सकता है. कोटा का इस्तेमाल अक्सर, डेवलपर और पार्टनर के साथ कारोबारी समझौते या एसएलए लागू करने के लिए किया जाता है. इसका इस्तेमाल, ऑपरेशनल ट्रैफ़िक को मैनेज करने के लिए नहीं किया जाता. उदाहरण के लिए, किसी मुफ़्त सेवा के लिए ट्रैफ़िक को सीमित करने के लिए कोटे का इस्तेमाल किया जा सकता है. वहीं, पैसे चुकाकर सेवा इस्तेमाल करने वाले ग्राहकों को पूरा ऐक्सेस दिया जा सकता है.
एपीआई प्रॉडक्ट में कोटा तय किया जाता हैकोटा पैरामीटर, एपीआई प्रॉडक्ट में कॉन्फ़िगर किए जाते हैं. उदाहरण के लिए, एपीआई प्रॉडक्ट बनाते समय, आपके पास यह तय करने का विकल्प होता है कि कोटा की कितनी सीमा तय की जाए, समय की यूनिट क्या हो, और इंटरवल क्या हो.
एपीआई पासकोड, एपीआई प्रॉडक्ट से मैप होते हैं. इसलिए, हर बार जब किसी एपीआई पासकोड की पुष्टि की जाती है, तब उससे जुड़े प्रॉडक्ट में तय किए गए कोटे के हिसाब से, कोटे के काउंटर की वैल्यू कम हो जाती है.
Apigee रनटाइम में, प्रॉडक्ट की परिभाषा में डाले गए कोटे अपने-आप लागू नहीं होते. हालांकि, Apigee की रिमोट सेवा में ऐसा होता है. अगर अनुरोध को अनुमति मिल जाती है, तो इसे तय कोटे में गिना जाएगा.
कोटा कहां मैनेज किए जाते हैंकोटा को Remote Service प्रोसेस के ज़रिए स्थानीय तौर पर बनाए रखा जाता है और इसकी जाँच की जाती है. साथ ही, इसे Apigee Runtime के साथ एसिंक्रोनस तरीके से बनाए रखा जाता है. इसका मतलब है कि कोटे की जानकारी सटीक नहीं है. अगर आपके पास एक से ज़्यादा रिमोट सर्विस हैं जो कोटे को मैनेज करती हैं, तो हो सकता है कि कोटे से ज़्यादा इस्तेमाल हो. अगर Apigee Runtime से कनेक्शन टूट जाता है, तो लोकल कोटा, स्टैंड-अलोन कोटा के तौर पर तब तक काम करता रहेगा, जब तक यह Apigee Runtime से फिर से कनेक्ट नहीं हो जाता.
OAuth का दायरा
अगर JWT टोकन का इस्तेमाल किया जा रहा है, तो अनुमति वाले OAuth स्कोप के सबसेट के लिए टोकन को सीमित किया जा सकता है. जारी किए गए जेडब्ल्यूटी टोकन को असाइन किए गए स्कोप की जांच, एपीआई प्रॉडक्ट के स्कोप के हिसाब से की जाएगी.
डेवलपर ऐप्लिकेशन के बारे में जानकारी
एपीआई प्रॉडक्ट कॉन्फ़िगर करने के बाद, आपको डेवलपर से जुड़ा ऐप्लिकेशन बनाना होगा. यह ऐप्लिकेशन, क्लाइंट को एपीआई पासकोड या JWT टोकन की मदद से, उससे जुड़े एपीआई प्रॉडक्ट को ऐक्सेस करने की अनुमति देता है.
JWT के आधार पर पुष्टि करने की सुविधा का इस्तेमाल करना
एपीआई पासकोड का इस्तेमाल करने के बजाय, पुष्टि किए गए एपीआई प्रॉक्सी कॉल करने के लिए JWT टोकन का इस्तेमाल किया जा सकता है. इस सेक्शन में, JWT टोकन बनाने, उनकी जांच करने, और उन्हें रोटेट करने के लिए, apigee-remote-service-cli token कमांड का इस्तेमाल करने का तरीका बताया गया है.
खास जानकारी
Envoy, JWT Authentication Filter का इस्तेमाल करके, JWT की पुष्टि और पुष्टि करने की प्रोसेस को मैनेज करता है.
पुष्टि हो जाने के बाद, Envoy ext-authz फ़िल्टर, अनुरोध हेडर और JWT को apigee-remote-service-envoy पर भेजता है. यह अनुरोध के टारगेट के ख़िलाफ़ पुष्टि करने के लिए, Apigee API प्रॉडक्ट के ख़िलाफ़ JWT के api_product_list और scope दावों से मेल खाता है.
Apigee JWT टोकन बनाना
CLI का इस्तेमाल करके Apigee JWT टोकन बनाए जा सकते हैं:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
इसके अलावा, स्टैंडर्ड OAuth टोकन एंडपॉइंट का इस्तेमाल करके भी ऐसा किया जा सकता है. curl का उदाहरण:
curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"JWT टोकन का इस्तेमाल करना
टोकन मिलने के बाद, आपको इसे Envoy को Authorization हेडर में पास करना होता है. उदाहरण:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
JWT टोकन से जुड़ी गड़बड़ी
Envoy के अनुरोध को अस्वीकार करना
अगर Envoy टोकन को अस्वीकार कर देता है, तो आपको इस तरह का मैसेज दिख सकता है:
Jwks remote fetch is failed
अगर ऐसा है, तो पक्का करें कि आपके Envoy कॉन्फ़िगरेशन में remote_jwks सेक्शन में मान्य यूआरआई शामिल हो. साथ ही, यह भी पक्का करें कि Envoy उस यूआरआई तक पहुंच सकता हो. इसके अलावा, Apigee प्रॉक्सी इंस्टॉल करते समय, आपने सर्टिफ़िकेट सही तरीके से सेट किए हों. आपके पास GET कॉल के ज़रिए, यूआरआई को सीधे कॉल करने और मान्य JSON जवाब पाने की सुविधा होनी चाहिए.
उदाहरण:
curl --http1.1 https://myorg-eval-test.apigee.net/remote-service/certs
Envoy से मिले अन्य मैसेज इस तरह के हो सकते हैं:
- "Jwt में ऑडियंस की अनुमति नहीं है"
- "Jwt issuer is not configured"
ये Envoy कॉन्फ़िगरेशन की ज़रूरी शर्तों से जुड़ी समस्याएं हैं. आपको इनमें बदलाव करने की ज़रूरत पड़ सकती है.
किसी टोकन की जांच करना
अपने टोकन की जांच करने के लिए, सीएलआई का इस्तेमाल किया जा सकता है. उदाहरण
apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
या
apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
डीबग करना
मान्य एपीआई पासकोड काम नहीं करता लेख पढ़ें.लॉग इन हो रहा है
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy सेवा पर लॉगिंग लेवल को अडजस्ट किया जा सकता है. सभी लॉगिंग, stderr को भेजी जाती है.
| एलिमेंट | ज़रूरी है | ब्यौरा |
|---|---|---|
| -l, --log_level | मान्य लेवल: debug, info, warn, error. | इससे लॉगिंग लेवल को अडजस्ट किया जाता है. डिफ़ॉल्ट: info |
| -j, --json_log | यह JSON रिकॉर्ड के तौर पर लॉग आउटपुट दिखाता है. |
Envoy, लॉगिंग की सुविधा देता है. ज़्यादा जानकारी के लिए, Envoy के दस्तावेज़ के ये लिंक देखें:
नेटवर्क प्रॉक्सी का इस्तेमाल करना
apigee-remote-service-envoy बाइनरी के एनवायरमेंट में, HTTP_PROXY और HTTPS_PROXY एनवायरमेंट वैरिएबल का इस्तेमाल करके, एचटीटीपी प्रॉक्सी डाली जा सकती है. इनका इस्तेमाल करते समय, NO_PROXY एनवायरमेंट वैरिएबल का इस्तेमाल करके, कुछ होस्ट को प्रॉक्सी के ज़रिए भेजे जाने से रोका जा सकता है.
HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] NO_PROXY=127.0.0.1,localhost
ध्यान रखें कि प्रॉक्सी, apigee-remote-service-envoy से ऐक्सेस की जा सकती हो.
मेट्रिक और आंकड़ों के बारे में जानकारी
Prometheus मेट्रिक एंडपॉइंट, :5001/metrics पर उपलब्ध है. इस पोर्ट नंबर को कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन फ़ाइल देखें.
Envoy के आंकड़े
Envoy प्रॉक्सी के ऐनलिटिक्स डेटा को पाने के बारे में जानकारी देने वाले लिंक यहां दिए गए हैं:
Istio के आंकड़े
Envoy प्रॉक्सी के ऐनलिटिक्स डेटा को पाने के बारे में जानकारी देने वाले लिंक यहां दिए गए हैं:
Apigee के आंकड़े
Apigee Remote Service for Envoy, Analytics प्रोसेसिंग के लिए Apigee को अनुरोध के आंकड़े भेजता है. Apigee, इन अनुरोधों को एपीआई प्रॉडक्ट के नाम से रिपोर्ट करता है.
Apigee Analytics के बारे में जानकारी पाने के लिए, Analytics सेवाओं की खास जानकारी देखें.