काम की गाइड

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

एपीआई पासकोड पाने का तरीका

इस उदाहरण में, एपीआई पासकोड पाने का तरीका बताया गया है. इसका इस्तेमाल करके, Envoy के लिए Apigee Adapter की मदद से प्रॉक्सी की गई टारगेट सेवा के लिए, एपीआई कॉल की पुष्टि की जा सकती है.

1. Apigee में लॉग इन करें

  1. ब्राउज़र में Apigee यूज़र इंटरफ़ेस (यूआई) खोलें.
  2. यूज़र इंटरफ़ेस (यूआई) में जाने के बाद, वही संगठन चुनें जिसका इस्तेमाल आपने Envoy के लिए Apigee Adapter को कॉन्फ़िगर करने के लिए किया था.

2. डेवलपर बनाएं

टेस्टिंग के लिए किसी मौजूदा डेवलपर का इस्तेमाल किया जा सकता है या नया डेवलपर बनाने के लिए, यह तरीका अपनाएं:

  1. साइड नेविगेशन मेन्यू में, पब्लिश करें > डेवलपर चुनें.
  2. + डेवलपर पर क्लिक करें.
  3. नया डेवलपर बनाने के लिए, डायलॉग बॉक्स भरें. डेवलपर के किसी भी नाम/ईमेल का इस्तेमाल किया जा सकता है.

3. एपीआई प्रॉडक्ट बनाएं

प्रॉडक्ट बनाने का यह उदाहरण देखें. एपीआई प्रॉडक्ट के कॉन्फ़िगरेशन के बारे में जानकारी भी देखें.

  1. साइड नेविगेशन मेन्यू में, पब्लिश करें > एपीआई प्रॉडक्ट चुनें.
  2. + एपीआई प्रॉडक्ट पर क्लिक करें.
  3. प्रॉडक्ट के बारे में जानकारी वाले पेज को नीचे दिए गए तरीके से भरें. सेव करें पर तब तक क्लिक न करें, जब तक कि ऐसा करने का निर्देश न दिया जाए.
  4. फ़ील्ड वैल्यू
    नाम httpbin-product
    डिसप्ले नेम httpbin product
    परिवेश your_environment

    इसे उस एनवायरमेंट पर सेट करें जिसका इस्तेमाल आपने apigee-remote-service-cli के साथ Envoy के लिए Apigee Adapter का प्रावधान करते समय किया था.

    ऐक्सेस Private
    कोटा हर 1 मिनट में पांच अनुरोध

    कोटा के बारे में जानकारी भी देखें.

  5. Apigee रिमोट सेवा के टारगेट सेक्शन में, Apigee रिमोट सेवा टारगेट जोड़ें पर क्लिक करें.
  6. Apigee रिमोट सेवा के टारगेट डायलॉग में, ये वैल्यू जोड़ें:
    एट्रिब्यूट वैल्यू ब्यौरा
    टारगेट का नाम टारगेट सेवा का नाम डालें. उदाहरण के लिए: httpbin.org टारगेट एंडपॉइंट, जो Envoy प्रॉक्सी के सामने है.
    एपीआई प्रॉक्सी remote-service Envoy अडैप्टर को इंस्टॉल करते समय, Apigee पर remote-service प्रॉक्सी का प्रावधान किया गया था.
    पाथ किसी खास पाथ से मिलान करने के लिए, /resource_path डालें. उदाहरण के लिए: /httpbin. टारगेट एंडपॉइंट से मैच करने के लिए, अनुरोध का पाथ. इस पाथ के एपीआई प्रॉक्सी कॉल, इस एपीआई प्रॉडक्ट से मेल खाएंगे.

    Edge Public या Private Cloud: नीचे दिया गया स्क्रीनशॉट, httpbin.org टारगेट के लिए ठीक से कॉन्फ़िगर की गई डायलॉग सेटिंग दिखाता है. यह Apigee Edge के सार्वजनिक या निजी क्लाउड के लिए एक सही कॉन्फ़िगरेशन है.

  7. सेव करें पर क्लिक करें.

4. डेवलपर ऐप्लिकेशन बनाना

  1. साइड नेविगेशन मेन्यू में, पब्लिश करें > ऐप्लिकेशन चुनें.
  2. + ऐप्लिकेशन पर क्लिक करें.
  3. डेवलपर ऐप्लिकेशन पेज को नीचे बताए गए तरीके से भरें. सेव न करें, जब तक कि ऐसा करने का निर्देश न दिया जाए.
  4. नाम httpbin-app
    डिसप्ले नेम httpbin app
    डेवलपर वह डेवलपर चुनें जिसे आपने पहले बनाया था या सूची में से अपना पसंदीदा डेवलपर चुनें.
  5. इसके बाद, ऐप्लिकेशन में दो प्रॉडक्ट जोड़ें:
    1. सबसे पहले, क्रेडेंशियल वाले सेक्शन में जाकर, + प्रॉडक्ट जोड़ें पर क्लिक करें. इसके बाद, वह प्रॉडक्ट चुनें जिसे आपने अभी-अभी कॉन्फ़िगर किया है: httpbin-product.
    2. इसके बाद, रिमोट-सेवा प्रॉडक्ट जोड़ें. जब आपने Apigee का प्रावधान किया था, तो यह प्रॉडक्ट अपने-आप बन गया था.
  6. बनाएं पर क्लिक करें.
  7. क्रेडेंशियल में, कुंजी के आगे दिखाएं पर क्लिक करें.
  8. उपभोक्ता कुंजी की वैल्यू कॉपी करें. यह वैल्यू एपीआई पासकोड है. इसका इस्तेमाल, httpbin सेवा को एपीआई कॉल करने के लिए किया जाएगा.

एपीआई प्रॉडक्ट के बारे में जानकारी

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

एपीआई प्रॉडक्ट की परिभाषा

Apigee में किसी एपीआई प्रॉडक्ट को सेट करते समय, आपके पास कई पैरामीटर सेट करने का विकल्प होता है. इन पैरामीटर का इस्तेमाल, अनुरोधों का आकलन करने के लिए किया जाएगा:

  • टारगेट
  • अनुरोध का पाथ
  • अनुरोध भेजने की तय सीमा (कोटा)
  • OAuth स्कोप

रिमोट सर्विस के टारगेट

एपीआई प्रॉडक्ट की परिभाषा किसी अनुरोध पर तब लागू होगी, जब अनुरोध टारगेट बाइंडिंग (उदाहरण के लिए, httpbin.org) और अनुरोध के पाथ (उदाहरण के लिए, /httpbin), दोनों से मेल खाता हो. संभावित टारगेट की सूची, एपीआई प्रॉडक्ट में एट्रिब्यूट के तौर पर सेव की जाती है.

डिफ़ॉल्ट रूप से, Apigee Remote Service, Envoy के खास :authority (host) हेडर की जांच, टारगेट की सूची से करता है. हालांकि, इसे दूसरे हेडर का इस्तेमाल करने के लिए कॉन्फ़िगर किया जा सकता है.

एपीआई रिसॉर्स पाथ

डाला गया पाथ, नीचे दिए गए नियमों के मुताबिक मेल खाता है:

  • सिंगल स्लैश (/) अपने-आप किसी भी पाथ से मैच करता है.
  • * कहीं भी मान्य है और सेगमेंट के अंदर (स्लैश के बीच) मैच करता है.
  • ** आखिर में मान्य है और लाइन के आखिर से मेल खाता है.

अनुरोध भेजने की तय सीमा (कोटा)

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

कोटा के इस्तेमाल के उदाहरण

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

कोटा के बारे में एपीआई प्रॉडक्ट में तय किया जाता है

कोटा पैरामीटर, एपीआई प्रॉडक्ट में कॉन्फ़िगर किए जाते हैं. उदाहरण के लिए, कोई एपीआई प्रॉडक्ट बनाते समय, आपके पास स्वीकार किए गए कोटे की सीमा, समय की इकाई, और इंटरवल सेट करने का विकल्प होता है.

एपीआई प्रॉडक्ट, एपीआई प्रॉडक्ट से मैप होते हैं. इसलिए, जब भी एपीआई पासकोड की पुष्टि की जाती है, तब सही कोटा काउंटर कम हो सकता है. ऐसा तब होता है, जब इससे जुड़े प्रॉडक्ट में कोटा तय किया गया हो.

Apigee रनटाइम से अलग, प्रॉडक्ट की परिभाषा में डाले गए कोटा, Apigee रिमोट सेवा से अपने-आप लागू हो जाते हैं. अगर अनुरोध को अनुमति दी गई है, तो उस अनुरोध को तय कोटे में गिना जाएगा.

कोटा कहां-कहां रखा जाता है

कोटे की जांच, स्थानीय तौर पर रिमोट सर्विस प्रोसेस के ज़रिए की जाती है. साथ ही, इसे Apigee रनटाइम के साथ एसिंक्रोनस तरीके से रखा जाता है. इसका मतलब है कि अगर आपके पास कोटा को मैनेज करने वाली एक से ज़्यादा रिमोट सेवा है, तो कोटा तय नहीं किया जाता और कुछ सीमा से ज़्यादा हो सकता है. अगर Apigee रनटाइम से कनेक्शन में रुकावट आती है, तो लोकल कोटा स्टैंड-अलोन कोटा के तौर पर तब तक जारी रहेगा, जब तक कि यह Apigee रनटाइम से फिर से कनेक्ट नहीं हो जाता.

OAuth का दायरा

अगर JWT के टोकन का इस्तेमाल किया जा रहा है, तो आपके पास टोकन को तय OAuth दायरे के सबसेट तक सीमित करने का विकल्प है. आपके जारी किए गए JWT टोकन को असाइन किए गए स्कोप की जांच, एपीआई प्रॉडक्ट के दायरे के हिसाब से की जाएगी.

डेवलपर ऐप्लिकेशन के बारे में जानकारी

अपने API प्रॉडक्ट को कॉन्फ़िगर कर लेने के बाद, किसी डेवलपर से जुड़ा ऐप्लिकेशन बनाया जाएगा. ऐप्लिकेशन एपीआई पासकोड या JWT टोकन के साथ क्लाइंट से जुड़े एपीआई प्रॉडक्ट को ऐक्सेस करने की अनुमति देता है.

JWT आधारित पुष्टि करने की प्रोसेस का इस्तेमाल किया जा रहा है

आप API कुंजी का उपयोग करने के बजाय प्रमाणित API प्रॉक्सी कॉल करने के लिए JWT टोकन का उपयोग कर सकते हैं. इस सेक्शन में, JWT के टोकन बनाने, उनकी जांच करने, और उन्हें घुमाने के लिए apigee-remote-service-cli token कमांड के इस्तेमाल का तरीका बताया गया है.

खास जानकारी

JWT की पुष्टि और पुष्टि करने का काम, Envoy करता है. इसके लिए, वह अपने JWT पुष्टि करने वाले फ़िल्टर का इस्तेमाल करता है.

पुष्टि हो जाने के बाद, Envoy ext-authz फ़िल्टर, apigee-remote-service-envoy को अनुरोध के हेडर और JWT भेजता है. यह JWT के api_product_list और scope दावों का मिलान, Apigee API प्रॉडक्ट से करता है, ताकि इन्हें अनुरोध के टारगेट के विरूद्ध अनुमति दी जा सके.

Apigee JWT टोकन बनाना

सीएलआई का इस्तेमाल करके, 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 टोकन इस्तेमाल करना

टोकन मिलने के बाद, आपको उसे 'ऑथराइज़ेशन हेडर' में एन्वोय को पास कर देना चाहिए. उदाहरण:

curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

JWT टोकन काम नहीं कर रहा

एन्वोय अस्वीकार करना

अगर Envoy टोकन को अस्वीकार कर देता है, तो आपको इस तरह का मैसेज दिख सकता है:

Jwks remote fetch is failed

अगर ऐसा है, तो पक्का करें कि आपके Envoy कॉन्फ़िगरेशन में remote_jwks सेक्शन में एक मान्य यूआरआई शामिल हो. साथ ही, इस बात का भी ध्यान रखा जाना चाहिए कि Envoy को इसका ऐक्सेस मिल सके. साथ ही, Apigee प्रॉक्सी इंस्टॉल करते समय, आपने सही तरीके से सर्टिफ़िकेट सेट किए हों. जीईटी कॉल के ज़रिए सीधे यूआरआई को कॉल किया जा सके और सही JSON जवाब मिल सके.

उदाहरण:

curl https://myorg-eval-test.apigee.net/remote-service/certs

Envoy के अन्य मैसेज इस तरह से दिख सकते हैं:

  • "Jwt में ऑडियंस की अनुमति नहीं है"
  • "Jwt जारी करने वाला बैंक या कंपनी कॉन्फ़िगर नहीं की गई है"

ये आपके 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, --लॉग-लेवल मान्य लेवल: डीबग, जानकारी, चेतावनी, गड़बड़ी. लॉगिंग लेवल में बदलाव करता है. डिफ़ॉल्ट: जानकारी
-j, --json-लॉग लॉग आउटपुट को JSON रिकॉर्ड के तौर पर एमिट करता है.

Envoy लॉगिंग की सुविधा देता है. ज़्यादा जानकारी के लिए, Envoy के दस्तावेज़ के ये लिंक देखें:

नेटवर्क प्रॉक्सी का इस्तेमाल करना

apigee-remote-service-envoy बाइनरी के एनवायरमेंट में HTTP_PROXY और एचटीटीपीएस_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 पर उपलब्ध है. आप इस पोर्ट नंबर को कॉन्फ़िगर कर सकते हैं. कॉन्फ़िगरेशन फ़ाइल देखें.

एन्वोय ऐनलिटिक्स

यहां दिए गए लिंक में एनवॉय प्रॉक्सी ऐनलिटिक्स डेटा हासिल करने के बारे में जानकारी दी गई है:

Istio Analytics

यहां दिए गए लिंक में एनवॉय प्रॉक्सी ऐनलिटिक्स डेटा हासिल करने के बारे में जानकारी दी गई है:

Apigee के आंकड़े

Envoy के लिए Apigee Remote Service, Analytics की प्रोसेसिंग के लिए Apigee को अनुरोध के आंकड़े भेजता है. Apigee, इन अनुरोधों को एपीआई प्रॉडक्ट के नाम के तहत रिपोर्ट करता है.

Apigee के आंकड़ों के बारे में जानकारी पाने के लिए, Analytics की सेवाओं की खास जानकारी देखें.