Apigee Edge-এর সাথে Apigee Adapter for Envoy ব্যবহার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

এই উদাহরণে দেখানো হয়েছে কীভাবে Apigee Edge-এর সাথে Apigee Adapter for Envoy ব্যবহার করতে হয়।

পূর্বশর্ত

শুরু করার আগে:

এক নজরে

এই উদাহরণে কীভাবে পাবলিক ক্লাউডের জন্য Apigee Edge-এর সাথে Apigee Adapter for Envoy ব্যবহার করতে হয় তা ব্যাখ্যা করা হয়েছে। API প্রক্সি কল, Envoy-এর মাধ্যমে ফ্লো করে যা Edge-এর সাথে নেটিভ অ্যাপ্লিকেশন হিসেবে রান করে এবং Envoy-এর জন্য Apigee রিমোট পরিষেবার মাধ্যমে API ম্যানেজমেন্ট পরিষেবা প্রদান করে।

নিচের ছবিতে Apigee Edge ইন্টিগ্রেশনের প্রাথমিক আর্কিটেকচার দেখানো হয়েছে:

Apigee Edge Cloud-এর সাথে যোগাযোগ করার জন্য নেটিভভাবে রান করা Envoy অ্যাডাপ্টরের একটি হাই-লেভেল
    ভিউ, যার মধ্যে
    ম্যানেজমেন্ট প্লেন, রানটাইম প্লেন এবং GCP পরিষেবা অন্তর্ভুক্ত

Envoy প্রক্সি ও রিমোট পরিষেবা লোকালি চলছে। Envoy টার্গেট পরিষেবাতে ও সেখান থেকে API ট্রাফিক ম্যানেজ করে এবং রিমোট পরিষেবার সাথে যোগাযোগ করে। এছাড়াও, API প্রোডাক্ট ও প্রক্সি সংক্রান্ত তথ্য পেতে রিমোট পরিষেবা Apigee Edge Cloud-এর সাথে যোগাযোগ করে।

Apigee Edge প্রভিশন করা

এই ধাপে, আপনি Apigee Edge-এ Apigee Adapter for Envoy অ্যাসেট প্রভিশন করার জন্য রিমোট সার্ভিস CLI ব্যবহার করবেন। প্রভিশনিং কমান্ড Apigee Edge-এ একটি API প্রক্সি ডিপ্লয় করে, এছাড়াও, এটি 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 --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-এ Remote Service Proxy থেকে আসা অনুরোধ যাচাই করার জন্য কী ও সিক্রেট ভ্যালু ব্যবহার করা হয়।

Envoy পরিষেবার জন্য Apigee Remote Service চালান

আপনি নেটিভ বাইনারি অথবা Docker হিসেবে রিমোট পরিষেবা চালাতে পারবেন।

নেটিভ হিসেবে পরিষেবা রান করানো

প্রভিশনিং কমান্ডের আউটপুট হিসেবে পাওয়া কনফিগারেশন ফাইল সহ পরিষেবা বাইনারি এক্সিকিউট করুন:

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

Docker-এ পরিষেবা চালান

রিলিজ ট্যাগ সহ Docker ইমেজ প্রকাশ করা হয়। এই ইনস্টলের জন্য, লেটেস্ট ভার্সন ব্যবহার করুন। বেছে নেওয়ার জন্য তিনটি ছবি ভেরিয়েশন আছে:

প্রকারভেদ ছবি
Google distroless gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
Boring Crypto সহ 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 - HTTP পরিষেবার জন্য ডিপ্লয়মেন্ট কনফিগারেশন।

স্যাম্পেল তৈরি করতে:

  1. $CLI_HOME ডিরেক্টরিতে যান।
  2. ফাইল জেনারেট করতে এই কমান্ডটি এক্সিকিউট করুন:

    ./apigee-remote-service-cli samples create --template native -c ./config.yaml
    নির্দিষ্ট করুন

    ./samples ডিরেক্টরি থেকে নিম্নলিখিত ফাইল আউটপুট করা হয়েছে:

    ls samples
    envoy-config.yaml
    

আরও তথ্যের জন্য, Samples কমান্ড দেখুন।

Envoy প্রক্সি ইনস্টল ও রান করা

Envoy প্রক্সি ইনস্টল ও রান করতে এইসব ধাপ অনুসরণ করুন:

  1. Envoy বাইনারি ডাউনলোড করুন অথবা এটি বিল্ড করুন, অথবা Docker ব্যবহার করুন।
  2. httpbin.org পরিষেবার জন্য আগে তৈরি করা নমুনা কনফিগারেশন ফাইল ব্যবহার করে Envoy রান করান:
    envoy -c $CLI_HOME/samples/envoy-config.yaml

ইনস্টলেশন পরীক্ষা করা

  1. httpbin পরিষেবায় কল করুন:
    curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
    

    এই পরিষেবা এখন Apigee ম্যানেজ করছে এবং আপনি API কী প্রদান না করার কারণে, কলটি নিম্নলিখিত সমস্যা দেখায়।

    curl -i http://localhost:8080/httpbin/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
  2. API প্রোডাক্ট কনফিগার করুন এবং কীভাবে API কী পাবেন নিবন্ধে যেভাবে বলা হয়েছে সেইভাবে API কী পান।
  3. কী ব্যবহার করে API কল করুন:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/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 পরিষেবায় API ট্রাফিক এখন Apigee ম্যানেজ করে। এখানে কিছু ফিচার দেওয়া হল যা আপনি এক্সপ্লোর ও ব্যবহার করে দেখতে পারেন:

  • আপনি যদি কীভাবে API কী পাবেন, লিঙ্কে দেওয়া নির্দেশাবলী অনুযায়ী আপনার API প্রোডাক্ট কনফিগার করে থাকেন, তাহলে কোটা সীমা প্রতি মিনিটে ৫টি অনুরোধ হিসেবে সেট করা হয়েছে। কোটা ট্রিগার করতে httpbin পরিষেবায় আরও কয়েকবার কল করে দেখুন। কোটা শেষ হয়ে গেলে, HTTP স্ট্যাটাস 403 সমস্যা দেখানো হয়।
  • Edge UI-তে Apigee Analytics অ্যাক্সেস করুন। বিশ্লেষণ করুন > API মেট্রিক > API প্রক্সি পারফর্ম্যান্স বিকল্পে যান।
  • API কল যাচাই করতে JWT টোকেন তৈরি ও ব্যবহার করুন।
  • টোকেন ম্যানেজ, তৈরি ও বাইন্ডিং কন্ট্রোল করতে CLI ব্যবহার করুন। CLI সংক্রান্ত বিবরণের জন্য, রেফারেন্স দেখুন।