Apigee এজ সহ দূতের জন্য Apigee অ্যাডাপ্টার ব্যবহার করা

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

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

পূর্বশর্ত

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

সংক্ষিপ্ত বিবরণ

এই উদাহরণটি ব্যাখ্যা করে কিভাবে Apigee Edge for Public Cloud-এর সাথে Apigee Adapter for Envoy ব্যবহার করতে হয়। এপিআই প্রক্সি কলগুলো একটি নেটিভ অ্যাপ্লিকেশন হিসেবে চলমান Envoy-এর মধ্য দিয়ে প্রবাহিত হয় এবং Edge, Apigee Remote Service for Envoy-এর মাধ্যমে এপিআই ম্যানেজমেন্ট পরিষেবা প্রদান করে।

প্রোভিশন অ্যাপিজি এজ

এই ধাপে, আপনি রিমোট সার্ভিস CLI ব্যবহার করে Apigee Edge-এ Apigee Adapter for Envoy অ্যাসেটগুলো প্রোভিশন করবেন। এই প্রোভিশনিং কমান্ডটি 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 প্রোভিশন করতে এই কমান্ডটি ব্যবহার করুন:

    $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-এ পাঠানো অনুরোধগুলো যাচাই করার জন্য কী (key) এবং সিক্রেট (secret) ভ্যালুগুলো ব্যবহার করা হয়।

Envoy পরিষেবার জন্য Apigee রিমোট সার্ভিসটি চালান।

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

সার্ভিসটি নেটিভভাবে চালান

প্রোভিশনিং কমান্ডের মাধ্যমে প্রাপ্ত কনফিগারেশন ফাইলটি ব্যবহার করে সার্ভিস বাইনারিটি চালান:

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

ডকারে সার্ভিসটি চালান

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

বৈচিত্র্য ছবি
গুগল ডিস্ট্রোলেস google/apigee-envoy-adapter:v2.0.0
উবুন্টু google/apigee-envoy-adapter:v2.0.0-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

নমুনা কনফিগারেশন ফাইল তৈরি করুন

CLI ব্যবহার করে একটি Envoy কনফিগারেশন ফাইল তৈরি করুন:

  1. নিশ্চিত করুন যে আপনি $ENVOY_HOME ডিরেক্টরিতে আছেন।
  2. উপলব্ধ কনফিগারেশন টেমপ্লেটগুলির তালিকা দিন:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. স্যাম্পলস কমান্ডটি চালান। TEMPLATE জন্য, সমর্থিত এনভয় টেমপ্লেটগুলোর মধ্যে একটি প্রতিস্থাপন করুন:

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

    এই কমান্ডটি ./samples/envoy-config.yaml ফাইলটি তৈরি করে।

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

Envoy প্রক্সি ইনস্টল করুন এবং চালান

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

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

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

  1. "কিভাবে একটি এপিআই কী পাবেন" অংশে ব্যাখ্যা করা পদ্ধতি অনুসরণ করে একটি এপিআই প্রোডাক্ট কনফিগার করুন এবং একটি এপিআই কী সংগ্রহ করুন।
  2. এপিআই কী ছাড়া httpbin পরিষেবাটি কল করুন:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

    পরিষেবাটি এখন Apigee দ্বারা পরিচালিত হচ্ছে, এবং আপনি API কী সরবরাহ না করার কারণে কলটি নিম্নলিখিত ত্রুটিটি দেখাচ্ছে।

    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 সার্ভিসটি আরও কয়েকবার কল করার চেষ্টা করুন। কোটা শেষ হয়ে গেলে, একটি HTTP স্ট্যাটাস 403 এরর রিটার্ন করা হয়।
  • Edge UI-তে Apigee Analytics অ্যাক্সেস করুন। Analyze > API Metrics > API Proxy Performance- এ যান।
  • এপিআই কল প্রমাণীকরণের জন্য JWT টোকেন তৈরি ও ব্যবহার করুন।
  • পরিচালনা করতে, টোকেন তৈরি করতে এবং বাইন্ডিং নিয়ন্ত্রণ করতে CLI ব্যবহার করুন। CLI-এর বিস্তারিত তথ্যের জন্য রেফারেন্স দেখুন।