Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
इस उदाहरण में, Apigee Edge के साथ Envoy के लिए Apigee अडैप्टर का इस्तेमाल करने का तरीका बताया गया है.
ज़रूरी शर्तें
शुरू करने से पहले: |
---|
|
खास जानकारी
इस उदाहरण में, सार्वजनिक क्लाउड के लिए Apigee Edge के साथ, Envoy के लिए Apigee अडैप्टर को इस्तेमाल करने का तरीका बताया गया है. एपीआई प्रॉक्सी कॉल, Envoy के ज़रिए नेटिव ऐप्लिकेशन के रूप में चल रहे होते हैं. Edge, Edge पर एपीआई मैनेजमेंट की सेवाएं उपलब्ध कराता है. यह Envoy के लिए Apigee Remote Service का इस्तेमाल करता है.
इस इमेज में, Apigee Edge इंटिग्रेशन का बुनियादी आर्किटेक्चर दिखाया गया है:
Envoy प्रॉक्सी और रिमोट सेवा, स्थानीय तौर पर चल रही हो. Envoy, टारगेट की गई सेवा से आने और उसमें जाने वाले एपीआई ट्रैफ़िक को मैनेज करता है. साथ ही, रिमोट सेवा के साथ कम्यूनिकेट करता है. रिमोट सेवा, एपीआई प्रॉडक्ट और प्रॉक्सी की जानकारी पाने के लिए, Apigee Edge Cloud के साथ भी कम्यूनिकेट करती है.
प्रॉविज़निंग Apigee Edge
इस चरण में, आपको रिमोट सेवा CLI का इस्तेमाल करके, Envoy एसेट के लिए Apigee अडैप्टर को Apigee Edge पर उपलब्ध कराना होगा. प्रोविज़न करने का निर्देश, Apigee Edge पर एक एपीआई प्रॉक्सी को डिप्लॉय करता है. साथ ही, Apigee पर एक सर्टिफ़िकेट सेट अप करता है और ऐसे क्रेडेंशियल जनरेट करता है जिनका इस्तेमाल, रिमोट सेवा आपके सिस्टम से Apigee से सुरक्षित तरीके से कनेक्ट करने के लिए करेगी.
$CLI_HOME
डायरेक्ट्री पर जाएं:cd $CLI_HOME
- नीचे दिए गए एनवायरमेंट वैरिएबल बनाएं. इन वैरिएबल का इस्तेमाल
प्रावधान स्क्रिप्ट में पैरामीटर के तौर पर किया जाएगा:
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export PASSWORD=your_apigee_password
कहां:
वैरिएबल ब्यौरा organization_name आपके Apigee संगठन का नाम. environment_name आपके संगठन में मौजूद एनवायरमेंट का नाम. your_apigee_username आपके Apigee खाते का उपयोगकर्ता नाम. आम तौर पर, उपयोगकर्ता नाम एक ईमेल पता होता है. your_apigee_password आपका Apigee पासवर्ड. - Apigee Edge पर रिमोट सेवा प्रॉक्सी को प्रोवाइड करने के लिए, यह कमांड चलाएं:
./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
यहां
$MFA
, Apigee का कई चरणों में पुष्टि करने वाला ऑथराइज़ेशन टोकन है. config.yaml
फ़ाइल के कॉन्टेंट की जांच करें. यह कुछ ऐसा दिखना चाहिए:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75
कुंजी और सीक्रेट वैल्यू का इस्तेमाल, रिमोट सेवा प्रॉक्सी से Apigee Edge के अनुरोधों की पुष्टि करने के लिए किया जाता है.
Envoy सेवा के लिए Apigee रिमोट सेवा चलाएं
रिमोट सेवा को नेटिव बाइनरी के तौर पर या Docker पर चलाया जा सकता है.
सेवा को नेटिव तरीके से चलाना
कॉन्फ़िगरेशन फ़ाइल के साथ सेवा बाइनरी को चलाएं. यह फ़ाइल, प्रोवाइज़न करने के लिए दिए गए निर्देश से जनरेट होती है:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Docker पर सेवा चलाना
Docker इमेज, रिलीज़ टैग के साथ पब्लिश की जाती हैं. इसे इंस्टॉल करने के लिए, सबसे नए वर्शन का इस्तेमाल करें. इमेज के लिए, ये तीन वैरिएशन चुने जा सकते हैं:
अलग-अलग तरह का कॉन्टेंट | इमेज |
---|---|
Google डिस्ट्रॉलेस | gcr.io/distroless/base |
Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
BoringCrypto के साथ Ubuntu | google/apigee-envoy-adapter:v1.1.0-boring |
उदाहरण के लिए, किसी वॉल्यूम माउंट के ज़रिए /config.yaml
के तौर पर उपलब्ध अपने स्थानीय config.yaml
के साथ स्क्रैच इमेज चलाने के लिए, इस निर्देश का इस्तेमाल करें:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0
सैंपल कॉन्फ़िगरेशन फ़ाइलें बनाना
कॉन्फ़िगरेशन फ़ाइलों के सैंपल
जनरेट करने के लिए, apigee-remote-service-cli samples create
कमांड का इस्तेमाल करें.
इस उदाहरण के लिए, आपको जनरेट की गई ये फ़ाइलें चाहिए:
envoy-config.yaml
- एचटीटीपी सेवा के लिए डिप्लॉयमेंट कॉन्फ़िगरेशन.
सैंपल जनरेट करने के लिए:
$CLI_HOME
डायरेक्ट्री पर जाएं.फ़ाइलें जनरेट करने के लिए, यह कमांड चलाएं:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
की जानकारी देंये फ़ाइलें,
./samples
डायरेक्ट्री का आउटपुट देती हैं:ls samples envoy-config.yaml
ज़्यादा जानकारी के लिए, सैंपल का निर्देश देखें.
Envoy प्रॉक्सी को इंस्टॉल और चलाना
Envoy प्रॉक्सी को इंस्टॉल और चलाने के लिए, यह तरीका अपनाएं:
- Envoy बाइनरी डाउनलोड करें या इसे बनाएं या Docker का इस्तेमाल करें.
httpbin.org
सेवा के लिए पहले जनरेट की गई सैंपल कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, Envoy चलाएं:envoy -c $CLI_HOME/samples/envoy-config.yaml
इंस्टॉलेशन की जांच करना
httpbin
सेवा को कॉल करें:curl -i http://localhost:8080/httpbin/headers
इस सेवा को अब Apigee मैनेज कर रहा है. आपने एपीआई पासकोड नहीं दिया है, इसलिए कॉल से यह गड़बड़ी दिखती है.
curl -i http://localhost:8080/httpbin/headers HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- एपीआई प्रॉडक्ट को कॉन्फ़िगर करें और एपीआई पासकोड पाएं. इसके लिए, एपीआई पासकोड पाने का तरीका लेख पढ़ें.
- पासकोड का इस्तेमाल करके एपीआई कॉल करें:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"
कॉल 200 स्थिति के साथ सफल होना चाहिए और रिस्पॉन्स में हेडर की सूची देखनी चाहिए. उदाहरण के लिए:
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@example.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
अगले चरण
httpbin
सेवा के लिए एपीआई ट्रैफ़िक को अब Apigee मैनेज करता है. यहां कुछ ऐसी सुविधाएं दी गई हैं जिन्हें आज़माया जा सकता है:
- अगर आपने अपने एपीआई प्रॉडक्ट को एपीआई पासकोड कैसे पाएं में बताए गए तरीके के मुताबिक कॉन्फ़िगर किया है, तो कोटा की सीमा हर मिनट में पांच अनुरोधों पर सेट की गई थी. कोटा ट्रिगर करने के लिए,
httpbin
सेवा को कुछ और बार कॉल करने की कोशिश करें. कोटा खत्म होने पर, एचटीटीपी स्टेटस 403 वाली गड़बड़ी का मैसेज दिखता है. - Edge यूज़र इंटरफ़ेस (यूआई) में Apigee Analytics ऐक्सेस करें. विश्लेषण करें > एपीआई मेट्रिक > एपीआई प्रोक्सी की परफ़ॉर्मेंस पर जाएं.
- एपीआई कॉल की पुष्टि करने के लिए, JWT टोकन जनरेट और इस्तेमाल करें.
- टोकन मैनेज करने, बनाने, और बाइंडिंग को कंट्रोल करने के लिए, सीएलआई का इस्तेमाल करें. सीएलआई के बारे में ज़्यादा जानकारी के लिए, रेफ़रंस देखें.