Apigee Edge के साथ Envoy के लिए Apigee अडैप्टर का इस्तेमाल करना

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

इस उदाहरण में, Apigee Edge के साथ Envoy के लिए Apigee Adapter को इस्तेमाल करने का तरीका बताया गया है.

ज़रूरी शर्तें

शुरू करने से पहले:

खास जानकारी

इस उदाहरण में बताया गया है कि Public Cloud के लिए, Apigee Edge के साथ Envoy के लिए Apigee अडैप्टर का इस्तेमाल कैसे किया जाता है. एपीआई प्रॉक्सी कॉल, Envoy से हो रहे हैं. यह नेटिव ऐप्लिकेशन के तौर पर चल रहा है. इसमें Edge, Envoy के लिए Apigee Remote Service के ज़रिए, एपीआई मैनेजमेंट की सेवाएं देता है.

इस डायग्राम में, Apigee Edge के इंटिग्रेशन के बुनियादी आर्किटेक्चर को दिखाया गया है:

Apigee Edge Cloud से संपर्क करने के लिए, मूल रूप से चलने वाले Envoy अडैप्टर की अच्छी तरह से ली गई इमेज. इसमें मैनेजमेंट प्लेन, रनटाइम प्लेन, और GCP सेवाएं शामिल हैं

Envoy प्रॉक्सी और रिमोट सेवा स्थानीय तौर पर चल रही हैं. Envoy, टारगेट सेवा से एपीआई ट्रैफ़िक को मैनेज करता है और रिमोट सेवा से संपर्क करता है. रिमोट सर्विस, एपीआई प्रॉडक्ट और प्रॉक्सी की जानकारी पाने के लिए Apigee Edge Cloud से संपर्क करती है.

प्रावधान Apigee Edge

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

  1. $CLI_HOME डायरेक्ट्री पर जाएं:
    cd $CLI_HOME
  2. यहां दिए गए एनवायरमेंट वैरिएबल बनाएं. इन वैरिएबल का इस्तेमाल प्रॉविज़निंग स्क्रिप्ट में पैरामीटर के तौर पर किया जाएगा:
    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 पासवर्ड.
  3. Apigee Edge पर रिमोट सर्विस प्रॉक्सी का प्रावधान करने के लिए, नीचे दिया गया निर्देश लागू करें:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. config.yaml फ़ाइल का कॉन्टेंट देखें. यह कुछ ऐसा दिखेगा:
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

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

Envoy सेवा के लिए Apigee रिमोट सेवा चलाएं

रिमोट सर्विस को नेटिव बाइनरी के तौर पर या Docker पर चलाया जा सकता है.

सेवा को नेटिव तौर पर चलाएं

सर्विस बाइनरी को उस कॉन्फ़िगरेशन फ़ाइल के साथ एक्ज़ीक्यूट करें जो प्रॉविज़निंग कमांड से मिली थी:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

सेवा को Docker पर चलाएं

Docker इमेज को रिलीज़ टैग के साथ पब्लिश किया जाता है. इस इंस्टॉल के लिए, सबसे नए वर्शन का इस्तेमाल करें. इमेज के तीन वैरिएशन उपलब्ध हैं:

अलग-अलग तरह का कॉन्टेंट इमेज
स्क्रैच google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Ubuntu के साथ बोरिंग क्रिप्टो करंसी google/apigee-envoy-adapter:v1.0.0-boring

उदाहरण के लिए, वॉल्यूम माउंट की मदद से /config.yaml के रूप में उपलब्ध अपने लोकल config.yaml पर स्क्रैच इमेज चलाने के लिए, इस निर्देश का इस्तेमाल करें:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0

Envoy प्रॉक्सी को इंस्टॉल करें और चलाएं

Envoy प्रॉक्सी को इंस्टॉल करने और चलाने के लिए, यह तरीका अपनाएं:

  1. Envoy को बाइनरी डाउनलोड करें या इसे बनाएं या Docker इस्तेमाल करें.
  2. httpbin.org सेवा के लिए सेट की गई सैंपल कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, Envoy चलाएं:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml

इंस्टॉलेशन की जांच करना

  1. 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
  2. एपीआई प्रॉडक्ट को कॉन्फ़िगर करें और एपीआई पासकोड पाने का तरीका लेख में बताए गए तरीके से एपीआई पासकोड पाएं.
  3. कुंजी का इस्तेमाल करके एपीआई कॉल करें:
    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 सेवा को कुछ और बार कॉल करके देखें. स्टोरेज कोटा पार होने पर, आपको यह गड़बड़ी दिखेगी:
    HTTP/1.1 429 Too Many Requests
  • Edge यूज़र इंटरफ़ेस (यूआई) में Apigee Analytics ऐक्सेस करना. विश्लेषण > एपीआई मेट्रिक > एपीआई प्रॉक्सी परफ़ॉर्मेंस पर जाएं.
  • एपीआई कॉल की पुष्टि करने के लिए, JWT टोकन जनरेट करें और उनका इस्तेमाल करें.
  • टोकन बनाने, मैनेज करने, और बाइंडिंग कंट्रोल करने के लिए सीएलआई का इस्तेमाल करें. सीएलआई की जानकारी के लिए, रेफ़रंस देखें.