काम की गाइड

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    एपीआई संसाधन पाथ

    डाला गया पाथ इन नियमों के मुताबिक मेल खाता है:

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

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

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

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

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

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

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

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

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

    कोटा कहां सेट किए जाते हैं

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

    OAuth का दायरा

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

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

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

    JWT आधारित प्रमाणीकरण का उपयोग करना

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

    खास जानकारी

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

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

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

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

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

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

    Envoy खारिज करना

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

    Jwks remote fetch is failed

    अगर ऐसा है, तो पक्का करें कि remote_jwks सेक्शन में आपके Envoy कॉन्फ़िगरेशन में एक मान्य यूआरआई शामिल हो, ताकि उसे Envoy से ऐक्सेस किया जा सके. साथ ही, यह भी पक्का करें कि Apigee प्रॉक्सी को इंस्टॉल करते समय, आपने सर्टिफ़िकेट को सही तरीके से सेट किया हो. आपके पास सीधे GET कॉल के साथ यूआरआई को कॉल करने और मान्य 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, --log-level मान्य लेवल: डीबग, जानकारी, चेतावनी, गड़बड़ी. लॉगिंग लेवल को अडजस्ट करता है. डिफ़ॉल्ट: info
    -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 पर उपलब्ध है. इस पोर्ट नंबर को कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन फ़ाइल देखें.

    Envoy के आंकड़े

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

    Istio के आंकड़े

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

    Apigee के आंकड़े

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

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