काम की गाइड

आपको 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 अडैप्टर का प्रावधान करते समय किया था apigee-remote-service-cli.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

तय सीमा का इस्तेमाल कहां किया जाता है

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

OAuth का दायरा

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

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

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

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

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

खास जानकारी

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

प्रमाणित होने के बाद, Envoy ext-authz फ़िल्टर इस पते पर अनुरोध हेडर और JWT भेजता है apigee-remote-service-envoy. यह 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 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 टोकन अस्वीकार कर देता है, तो आपको इस तरह का मैसेज दिख सकता है:

Jwks remote fetch is failed

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

उदाहरण:

curl --http1.1 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_log लॉग आउटपुट को JSON रिकॉर्ड के तौर पर जोड़ता है.

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

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

HTTP_PROXY और एचटीटीपीएस_PROXY एनवायरमेंट वैरिएबल का इस्तेमाल करके, एचटीटीपी प्रॉक्सी को शामिल किया जा सकता है apigee-remote-service-envoy बाइनरी के एनवायरमेंट में मौजूद होना चाहिए. इनका इस्तेमाल करते समय, 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 प्रॉक्सी ऐनलिटिक्स पाने के बारे में जानकारी मिलती है डेटा:

इस्टियो ऐनलिटिक्स

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

Apigee के आंकड़े

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

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