आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
एपीआई पासकोड पाने का तरीका
नीचे दिए गए उदाहरण में, एपीआई पासकोड पाने का तरीका बताया गया है. इसका इस्तेमाल करके, पुष्टि की जा सकती है Envoy के लिए Apigee अडैप्टर के ज़रिए प्रॉक्सी टारगेट सेवा को एपीआई कॉल.
1. Apigee में लॉग इन करें
- ब्राउज़र में Apigee यूज़र इंटरफ़ेस (यूआई) खोलें.
- यूज़र इंटरफ़ेस (यूआई) में आने के बाद, उसी संगठन को चुनें जिसका इस्तेमाल आपने Envoy के लिए Apigee अडैप्टर को कॉन्फ़िगर करने के लिए किया था.
2. डेवलपर बनाएं
जांच करने के लिए, किसी मौजूदा डेवलपर का इस्तेमाल किया जा सकता है या नया डेवलपर बनाया जा सकता है. इसके लिए, यह तरीका अपनाएं:
- पब्लिश करें > को चुनें डेवलपर पर क्लिक करें.
- + डेवलपर पर क्लिक करें.
- नया डेवलपर बनाने के लिए, डायलॉग बॉक्स भरें. डेवलपर के किसी भी नाम/ईमेल पते का इस्तेमाल किया जा सकता है.
3. एक एपीआई प्रॉडक्ट बनाएं
नीचे दिए गए, प्रॉडक्ट बनाने के उदाहरण का पालन करें. इन्हें भी देखें इसके बारे में एपीआई प्रॉडक्ट कॉन्फ़िगरेशन.
- पब्लिश करें > को चुनें एपीआई प्रॉडक्ट सेक्शन पर जाएं.
- + एपीआई प्रॉडक्ट पर क्लिक करें.
- प्रॉडक्ट की जानकारी वाले पेज को यहां बताए गए तरीके से भरें.
- Apigee रिमोट सर्विस टारगेट सेक्शन में, Apigee रिमोट सर्विस टारगेट जोड़ें पर क्लिक करें.
- Apigee रिमोट सर्विस के टारगेट डायलॉग में, ये वैल्यू जोड़ें:
एट्रिब्यूट मान ब्यौरा टारगेट का नाम चैनल का नाम डालें टारगेट सेवा. उदाहरण के लिए: httpbin.org
टारगेट एंडपॉइंट को Envoy प्रॉक्सी के सामने रखा गया है. पाथ मिलान करने के लिए सेवा पर एक संसाधन पाथ डालें. इसके लिए उदाहरण: /headers
.टारगेट एंडपॉइंट से मैच करने के लिए, अनुरोध का पाथ. इस पाथ के लिए एपीआई प्रॉक्सी कॉल इस एपीआई प्रॉडक्ट से मेल खाएगा. - सेव करें पर क्लिक करें.
फ़ील्ड | मान |
---|---|
नाम | httpbin-product
|
डिसप्ले नेम | httpbin product
|
परिवेश | your_environment
इसे उस एनवायरमेंट पर सेट करें जिसका इस्तेमाल आपने Envoy के लिए Apigee अडैप्टर का प्रावधान करते समय किया था. |
ऐक्सेस | Private
|
कोटा | हर एक मिनट में पांच अनुरोध
कोटा भी देखें. |
4. डेवलपर ऐप्लिकेशन बनाना
- पब्लिश करें > को चुनें ऐप्लिकेशन पर क्लिक करें.
- + ऐप्लिकेशन पर क्लिक करें.
- डेवलपर ऐप्लिकेशन पेज को नीचे बताए गए तरीके से भरें. तब तक सेव न करें, जब तक आपके लिए निर्देश न दिया जाए.
- इसके बाद, एपीआई प्रॉडक्ट को ऐप्लिकेशन में जोड़ें:
- क्रेडेंशियल सेक्शन में, + प्रॉडक्ट जोड़ें पर क्लिक करें. इसके बाद, वह प्रॉडक्ट चुनें अभी-अभी कॉन्फ़िगर किया गया है: httpbin-product.
- बनाएं पर क्लिक करें.
- क्रेडेंशियल में जाकर, कुंजी के आगे मौजूद दिखाएं पर क्लिक करें.
- उपभोक्ता कुंजी की वैल्यू कॉपी करें. यह वैल्यू एपीआई पासकोड है
जिसे आप
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 टोकन बनाए जा सकते हैं:
$CLI_HOME/apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
इसके अलावा, स्टैंडर्ड OAuth टोकन एंडपॉइंट का इस्तेमाल करके भी ऐसा किया जा सकता है. कर्ल का उदाहरण:
curl https://org-env.apigee.net/remote-token/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 https://myorg-eval-test.apigee.net/remote-service/certs
Envoy के अन्य मैसेज ऐसे दिख सकते हैं:
- "Jwt में ऑडियंस की अनुमति नहीं है"
- "Jwt जारी करने वाले को कॉन्फ़िगर नहीं किया गया है"
ये आपके Envoy कॉन्फ़िगरेशन की ज़रूरी शर्तों में से हैं. आपको इनमें बदलाव करना पड़ सकता है.
टोकन की जांच करें
अपने टोकन की जांच करने के लिए, सीएलआई का इस्तेमाल किया जा सकता है. उदाहरण
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
या
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
डीबग करना
मान्य एपीआई पासकोड की वजह से हुई गड़बड़ी देखें.लॉग इन हो रहा है
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy सेवा पर जाकर, लॉगिंग लेवल में बदलाव किया जा सकता है. सभी लॉगिंग stdout और stderr को भेजी जाती है.
एलिमेंट ज़रूरी है ब्यौरा -l, --लॉग-लेवल मान्य लेवल: डीबग, जानकारी, चेतावनी, गड़बड़ी. लॉगिंग लेवल को अडजस्ट करता है. डिफ़ॉल्ट: जानकारी -j, --json-लॉग लॉग आउटपुट को 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 सेवाओं की खास जानकारी देखें.
मल्टी-टेनेंट एनवायरमेंट की सुविधा
अब इस अडैप्टर को कई तरीकों से कनेक्ट करने के लिए चालू किया जा सकता है एक Apigee संगठन में वातावरण. इस सुविधा से, एक Apigee का इस्तेमाल किया जा सकता है एक से ज़्यादा एनवायरमेंट की सेवा देने के लिए, एक Apigee संगठन से जुड़े Envoy के लिए अडैप्टर. इस तारीख से पहले यह बदलाव हुआ है, इसलिए एक अडैप्टर हमेशा एक Apigee एनवायरमेंट से जुड़ा था.
कई एनवायरमेंट सपोर्ट को कॉन्फ़िगर करने के लिए, इनमें बदलाव करें
config.yaml
मेंtenant:env_name
से*
तक की वैल्यू फ़ाइल से लिए जाते हैं. उदाहरण के लिए:config.yaml
फ़ाइल को एडिटर में खोलें.tenant.env_name
की वैल्यू को*
में बदलें. उदाहरण के लिए:apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://myorg-myenv.apigee.net/remote-service org_name: apigee-docs-hybrid-a env_name: * allow_unverified_ssl_cert: true analytics: collection_interval: 10s auth: jwt_provider_key: https://myorg-myenv.apigee.net.net/remote-token/token
- फ़ाइल सेव करें.
- फ़ाइल लागू करें:
kubectl apply -f $CLI_HOME/config.yaml
मल्टी-एनवायरमेंट मोड को कॉन्फ़िगर करते समय, आपको Envoy को भी कॉन्फ़िगर करना होगा, ताकि वह हमें पर्यावरण मान को अडैप्टर में बदलने के लिए,
envoy-config.yaml
फ़ाइल काvirtual_hosts:routes
सेक्शन. उदाहरण के लिए:- सीएलआई का इस्तेमाल करके
envoy-config.yaml
फ़ाइल जनरेट करें. उदाहरण के लिए:$CLI_HOME/apigee-remote-service-cli samples create \ -t envoy-1.16 -c ./config.yaml --out myconfigs
- जनरेट की गई फ़ाइल खोलें (इसे
envoy-config.yaml
कहा जाता है). - इस मेटाडेटा को या तो
virtual_host
में जोड़ें या फ़ाइल काroutes
सेक्शन:typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test
इस उदाहरण में, एक से ज़्यादा रूट वाले
virtual_host
के कॉन्फ़िगरेशन को दिखाया गया है तय किया गया है, जहां हर रूट एक खास एनवायरमेंट में ट्रैफ़िक भेजता है:filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http route_config: virtual_hosts: - name: default domains: "*" routes: - match: { prefix: /test } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test - match: { prefix: /prod } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: prod
- ज़रूरत के मुताबिक अतिरिक्त एनवायरमेंट जोड़ने के लिए, आखिरी चरण दोहराएं.
- फ़ाइल सेव करें और उसे लागू करें.
अडैप्टर और Apigee रनटाइम के बीच mTLS कॉन्फ़िगर करना
क्लाइंट-साइड TLS सर्टिफ़िकेट देने के लिए, यहां जाएं:
tenant
अडैप्टर कीconfig.yaml
फ़ाइल का इस्तेमाल करके, अडैप्टर और Apigee रनटाइम के बीच mTLS का इस्तेमाल किया जाता है. यह यह बदलाव, इस्तेमाल किए जा सकने वाले सभी Apigee प्लैटफ़ॉर्म पर लागू होगा. यह आंकड़ों के लिए mTLS को भी चालू करता है Apigee Edge के लिए उपलब्ध है. उदाहरण के लिए:tenant: tls: ca_file: path/ca.pem cert_file: path/cert.pem key_file: path/key.pem allow_unverified_ssl_cert: false
नाम | httpbin-app
|
डिसप्ले नेम | httpbin app
|
डेवलपर | वह डेवलपर चुनें जिसे आपने पहले बनाया था या सूची में से अपनी पसंद का कोई डेवलपर चुनें. |