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

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

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

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

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

खास जानकारी

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

प्रॉविज़निंग Apigee Edge

इस चरण में, आपको Envoy ऐसेट के लिए Apigee अडैप्टर का प्रावधान करने के लिए रिमोट सर्विस सीएलआई का इस्तेमाल करना होगा Apigee Edge. प्रावधान करने का निर्देश, Apigee Edge पर एपीआई प्रॉक्सी को डिप्लॉय करता है, और इस पर सर्टिफ़िकेट भी सेट अप करता है, Apigee और ऐसे क्रेडेंशियल जनरेट करता है जिनका इस्तेमाल Remote Service सुरक्षित तरीके से करेगा अपने सिस्टम से 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 का प्रावधान करने के लिए इस निर्देश का इस्तेमाल करें:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

    अगर अपग्रेड किया जा रहा है, तो Apigee का प्रावधान करने के लिए, --force-proxy-install फ़्लैग के साथ इस निर्देश का इस्तेमाल करें:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
  4. 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 रिमोट सेवा चलाएं

आप रिमोट सेवा को या तो नेटिव बाइनरी के रूप में चला सकते हैं के साथ इंटिग्रेट कर सकते हैं.

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

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

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

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

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

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

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

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

कॉन्फ़िगरेशन फ़ाइलों का सैंपल बनाएं

सीएलआई का इस्तेमाल करके एक Envoy कॉन्फ़िगरेशन फ़ाइल जनरेट करें:

  1. पक्का करें कि आप $ENVOY_HOME डायरेक्ट्री में हैं.
  2. उपलब्ध कॉन्फ़िगरेशन टेंप्लेट की सूची बनाएं:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. सैंपल कमांड चलाएं. TEMPLATE के लिए, इस्तेमाल किए जा सकने वाले Envoy टेंप्लेट में से किसी एक को बदलें:

    $CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml

    निर्देश, ./samples/envoy-config.yaml फ़ाइल बनाता है.

ज़्यादा जानकारी के लिए, सैंपल कमांड देखें.

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

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

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

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

  1. किसी एपीआई प्रॉडक्ट को कॉन्फ़िगर करें और यहां बताए गए तरीके से एपीआई पासकोड पाएं एपीआई पासकोड पाने का तरीका.
  2. एपीआई पासकोड के बिना, httpbin सेवा को कॉल करें:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

    इस सेवा को अब Apigee मैनेज कर रहा है. साथ ही, आपने एपीआई पासकोड नहीं दिया है, इसलिए तो कॉल नीचे दी गई गड़बड़ी दिखाता है.

    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    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
  3. कुंजी का इस्तेमाल करके एपीआई कॉल करें:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/headers \
    -H "HOST:httpbin.org" -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 टोकन जनरेट करें और उनका इस्तेमाल करें.
  • टोकन बनाने, मैनेज करने, और बाइंडिंग कंट्रोल करने के लिए सीएलआई का इस्तेमाल करें. सीएलआई की जानकारी के लिए, रेफ़रंस देखें.