অপারেশন গাইড

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

কীভাবে API key পেতে হয়

Envoy-এর জন্য Apigee অ্যাডাপ্টারের মাধ্যমে প্রক্সি করা টার্গেট পরিষেবায় API কল যাচাই করতে আপনি কীভাবে API কী পাবেন তা নিম্নলিখিত উদাহরণ থেকে বুঝতে পারবেন।

১. Apigee-তে লগ-ইন করুন

  1. ব্রাউজারে Apigee UI খুলুন।
  2. UI-তে যাওয়ার পরে, Envoy-এর জন্য Apigee অ্যাডাপ্টর কনফিগার করার সময় আপনি যে সংস্থা ব্যবহার করেছিলেন সেটিই বেছে নিন।

২. ডেভেলপার তৈরি করা

আপনি পরীক্ষার জন্য আগে থেকে থাকা কোনও ডেভেলপার ব্যবহার করতে পারেন অথবা নিচে উল্লেখ করা ধাপগুলি অনুসরণ করে নতুন ডেভেলপার তৈরি করতে পারেন:

  1. সাইড নেভিগেশন মেনু থেকে প্রকাশ করুন > ডেভেলপার বিকল্প বেছে নিন।
  2. + ডেভেলপার বিকল্পে ক্লিক করুন।
  3. নতুন ডেভেলপার তৈরি করতে ডায়ালগ পূরণ করুন। আপনি নিজের পছন্দমতো যেকোনও ডেভেলপার নাম/ইমেল ব্যবহার করতে পারেন।

৩. API প্রোডাক্ট তৈরি করা

নিচে দেওয়া প্রোডাক্ট তৈরি করার উদাহরণ অনুসরণ করুন। এছাড়াও দেখুন API প্রোডাক্ট কনফিগারেশন সম্পর্কে।

  1. সাইড নেভিগেশন মেনুতে প্রকাশ করুন > API প্রোডাক্ট বিকল্প বেছে নিন।
  2. + API প্রোডাক্ট বিকল্পে ক্লিক করুন।
  3. নিচে উল্লেখ করা তথ্য অনুযায়ী প্রোডাক্টের বিবরণের পৃষ্ঠা পূরণ করুন। নির্দেশ না পাওয়া পর্যন্ত সেভ করুন বিকল্পে ক্লিক করবেন না।
  4. ফিল্ড ভ্যালু
    নাম httpbin-product
    যে নাম দেখানো হবে httpbin product
    পরিবেশ your_environment

    আপনি যখন apigee-remote-service-cli ব্যবহার করে Envoy-এর জন্য Apigee অ্যাডাপ্টার প্রোভিশন করেছিলেন, তখন আপনি যে এনভায়রনমেন্ট ব্যবহার করেছিলেন সেটিতে এটি সেট করুন।

    অ্যাক্সেস Private
    Quota প্রতি ১ মিনিটে ৫টি অনুরোধ

    এছাড়াও, কোটা বোঝা দেখুন।

  5. Apigee রিমোট সার্ভিস টার্গেট বিভাগে, Apigee রিমোট সার্ভিস টার্গেট যোগ করুন বিকল্পে ক্লিক করুন।
  6. Apigee রিমোট পরিষেবা টার্গেট ডায়ালগে, নিম্নলিখিত ভ্যালু যোগ করুন:
    অ্যাট্রিবিউট ভ্যালু বিবরণ
    টার্গেটের নাম টার্গেট সার্ভিসের নাম লিখুন। যেমন: httpbin.org Envoy প্রক্সি দ্বারা ফ্রন্ট-এন্ডে থাকা টার্গেট এন্ডপয়েন্ট।
    API প্রক্সি remote-service Envoy Adapter ইনস্টল করার সময় Apigee-তে যে remote-service প্রক্সি প্রভিশন করা হয়েছিল।
    পাথ নির্দিষ্ট পাথ ম্যাচ করাতে /resource_path লিখুন। যেমন: /httpbin. টার্গেট এন্ডপয়েন্টে ম্যাচ করার জন্য অনুরোধের পাথ। এই পাথে API প্রক্সি কল এই API প্রোডাক্টের সাথে ম্যাচ করবে।

    Edge পাবলিক বা প্রাইভেট ক্লাউড: নিচের স্ক্রিনশটটি httpbin.org টার্গেটের জন্য সঠিকভাবে কনফিগার করা ডায়ালগ সেটিংস দেখায়, এটি Apigee Edge পাবলিক বা প্রাইভেট ক্লাউডের জন্য উপযুক্ত কনফিগারেশন।

  7. সেভ করুন বিকল্পে ক্লিক করুন।

৪. Developer অ্যাপ তৈরি করা

  1. সাইড নেভিগেশন মেনু থেকে প্রকাশ করুন > অ্যাপ বিকল্প বেছে নিন।
  2. + অ্যাপ বিকল্পে ক্লিক করুন।
  3. নিম্নলিখিত তথ্য দিয়ে ডেভেলপার অ্যাপ পৃষ্ঠা পূরণ করুন। নির্দেশ না দেওয়া পর্যন্ত সেভ করবেন না।
  4. নাম httpbin-app
    যে নাম দেখানো হবে httpbin app
    ডেভেলপার আপনি আগে যে ডেভেলপার তৈরি করেছেন সেটি বেছে নিন অথবা তালিকা থেকে আপনার পছন্দের যেকোনও ডেভেলপার বেছে নিন।
  5. এরপরে, অ্যাপে দুটি প্রোডাক্ট যোগ করুন:
    1. প্রথমে, 'শংসাপত্র' বিভাগে, + প্রোডাক্ট যোগ করুন বিকল্পে ক্লিক করুন এবং আপনি এইমাত্র যে প্রোডাক্ট কনফিগার করেছেন সেটি বেছে নিন: httpbin-product.
    2. তারপরে, রিমোট-পরিষেবা প্রোডাক্ট যোগ করুন। আপনি Apigee-এর ব্যবস্থা করার সময় এই প্রোডাক্টটি অটোমেটিক তৈরি করা হয়েছে।
  6. তৈরি করুন বিকল্পে ক্লিক করুন।
  7. ক্রেডেনশিয়াল বিকল্পের মধ্যে, কী-এর পাশে দেখুন বিকল্পে ক্লিক করুন।
  8. কনজিউমার কী-এর ভ্যালু কপি করুন। এই ভ্যালু হল API key যা আপনি httpbin পরিষেবায় API কল করার জন্য ব্যবহার করবেন।

API প্রোডাক্ট সম্পর্কে

Apigee রিমোট সার্ভিসের জন্য API প্রোডাক্ট হল প্রাথমিক কন্ট্রোল পয়েন্ট। আপনি কোনও API প্রোডাক্ট তৈরি করে সেটি কোনও টার্গেট পরিষেবার সাথে বাইন্ড করলে, আপনি এমন একটি নীতি তৈরি করছেন যা সেইসব অনুরোধের ক্ষেত্রে প্রযোজ্য হবে যেগুলি হ্যান্ডেল করার জন্য আপনি নিজের Apigee Adapter for Envoy কনফিগার করেছেন।

API প্রোডাক্টের সংজ্ঞা

Apigee-তে কোনও API প্রোডাক্টকে সংজ্ঞায়িত করার সময়, আপনি বেশ কিছু প্যারামিটার সেট করতে পারেন যেগুলি অনুরোধ মূল্যায়ন করার জন্য ব্যবহার করা হবে:

  • লক্ষ্য
  • অনুরোধের পাথ
  • কোটা
  • OAuth স্কোপ

রিমোট সার্ভিস টার্গেট

কোনও অনুরোধ যদি টার্গেট বাইন্ডিং (যেমন, httpbin.org) এবং অনুরোধ পাথ (যেমন, /httpbin) দুটির সাথেই ম্যাচ করে, তাহলে সেই অনুরোধের ক্ষেত্রে API প্রোডাক্টের সংজ্ঞা প্রযোজ্য হবে। সম্ভাব্য টার্গেটের একটি তালিকা API প্রোডাক্টে অ্যাট্রিবিউট হিসেবে সেভ করা থাকে।

ডিফল্ট হিসেবে, Apigee রিমোট সার্ভিস, Envoy-এর বিশেষ :authority (host) হেডারকে এর টার্গেটের তালিকার সাথে চেক করে; তবে এটি অন্যান্য হেডার ব্যবহার করার জন্য কনফিগার করা যেতে পারে।

API রিসোর্স পাথ

নিম্নলিখিত নিয়ম অনুযায়ী, লেখা পাথ ম্যাচ করে:

  • একটি স্ল্যাশ (/) যেকোনও পাথের সাথে ম্যাচ করে।
  • * যেকোনও জায়গায় সঠিক এবং সেগমেন্টের (স্ল্যাশের মধ্যে) মধ্যে ম্যাচ করে।
  • ** শেষে বৈধ এবং লাইনের শেষ পর্যন্ত যেকোনও কিছুর সাথে ম্যাচ করে।

কোটা

কোটা হল অনুরোধ মেসেজের সংখ্যা যা কোনও অ্যাপকে এক ঘণ্টা, এক দিন, এক সপ্তাহ বা এক মাস ধরে কোনও এপিআই-তে জমা দেওয়ার অনুমতি দেওয়া হয়। কোনও অ্যাপ কোটা সীমায় পৌঁছে গেলে, পরবর্তী API কল বাতিল করা হয়।

কোটা ব্যবহারের উদাহরণ

কোটা আপনাকে কোনও ক্লায়েন্টকে একটি নির্দিষ্ট সময়ের মধ্যে কোনও পরিষেবার জন্য করা অনুরোধের সংখ্যা প্রয়োগ করার অনুমতি দেয়। কোটা প্রায়শই ডেভেলপার ও পার্টনারদের সাথে বাণিজ্যিক চুক্তি বা SLA প্রয়োগ করার জন্য ব্যবহার করা হয়, অপারেশনাল ট্রাফিক ম্যানেজমেন্টের জন্য নয়। যেমন, কোটা ব্যবহার করে ফ্রি পরিষেবার ট্রাফিক সীমিত করা হতে পারে, তবে পেমেন্ট করা গ্রাহকদের সম্পূর্ণ অ্যাক্সেস দেওয়া হতে পারে।

API প্রোডাক্টে কোটা সংজ্ঞায়িত করা হয়

API প্রোডাক্টে কোটা প্যারামিটার কনফিগার করা হয়। যেমন, আপনি কোনও API প্রোডাক্ট তৈরি করলে, অনুমোদিত কোটার সীমা, সময় একক ও ইন্টার্ভাল ঐচ্ছিকভাবে সেট করতে পারবেন।

API কী API প্রোডাক্টের সাথে ম্যাপ করা থাকে, তাই প্রতিবার API কী যাচাই করা হলে, উপযুক্ত কোটা কাউন্টার থেকে মান কমানো যেতে পারে (যদি সংশ্লিষ্ট প্রোডাক্টে কোটা নির্দিষ্ট করা থাকে)।

Apigee রানটাইমের মধ্যে কোটা প্রয়োগ করার পদ্ধতির বিপরীতে, প্রোডাক্টের সংজ্ঞায় কোটা লিখলে তা Apigee রিমোট সার্ভিস অটোমেটিক প্রয়োগ করে। অনুরোধ অনুমোদিত হলে, অনুমোদিত কোটার মধ্যে অনুরোধটি গণনা করা হবে।

কোথায় কোটা বজায় রাখা হয়

কোটাগুলি রিমোট পরিষেবা প্রসেস দ্বারা স্থানীয়ভাবে রক্ষণাবেক্ষণ ও চেক করা হয় এবং Apigee Runtime-এর সাথে অ্যাসিঙ্ক্রোনাস ম্যানেজ করা হয়। এর অর্থ হল, কোটা সঠিকভাবে সেট করা হয়নি এবং আপনার যদি একাধিক রিমোট পরিষেবা থাকে যা কোটা বজায় রাখছে, তাহলে কিছু ওভাররান হওয়ার সম্ভাবনা রয়েছে। Apigee Runtime-এর সাথে কানেকশন বিচ্ছিন্ন হয়ে গেলে, এটি Apigee Runtime-এর সাথে আবার কানেক্ট না হওয়া পর্যন্ত লোকাল কোটা একটি স্বতন্ত্র কোটা হিসেবে চলতে থাকবে।

OAuth স্কোপ

আপনি JWT টোকেন ব্যবহার করলে, অনুমোদিত OAuth স্কোপের সাবসেটে টোকেন সীমাবদ্ধ করতে পারেন। আপনার ইস্যু করা JWT টোকেনে অ্যাসাইন করা স্কোপ, API প্রোডাক্টের স্কোপের সাথে চেক করা হবে।

Developer অ্যাপ সম্পর্কে

আপনার API প্রোডাক্ট কনফিগার করা হয়ে গেলে, আপনি একজন ডেভেলপারের সাথে যুক্ত একটি অ্যাপ তৈরি করবেন। অ্যাপটি API কী বা JWT টোকেনের মাধ্যমে সংশ্লিষ্ট API প্রোডাক্টে ক্লায়েন্ট অ্যাক্সেস করার অনুমতি দেয়।

JWT ভিত্তিক যাচাইকরণ ব্যবহার করা

API কী ব্যবহার করার পরিবর্তে, আপনি যাচাই করা API প্রক্সি কল করতে JWT টোকেন ব্যবহার করতে পারেন। এই বিভাগে JWT টোকেন তৈরি, পরীক্ষা ও রোটেট করার জন্য apigee-remote-service-cli token কমান্ড কীভাবে ব্যবহার করতে হয় তা ব্যাখ্যা করা হয়েছে।

এক নজরে

Envoy তার JWT যাচাইকরণ ফিল্টার ব্যবহার করে JWT যাচাইকরণ ও প্রমাণীকরণ ম্যানেজ করে।

অনুমোদিত হয়ে গেলে, Envoy ext-authz ফিল্টার অনুরোধ হেডার ও JWT-কে apigee-remote-service-envoy-এ পাঠায়। এটি JWT-এর api_product_list ও scope দাবি Apigee API প্রোডাক্টের সাথে মিলিয়ে দেখে যাতে অনুরোধের টার্গেটের বিরুদ্ধে এটিকে অনুমোদন করা যায়।

Apigee JWT টোকেন তৈরি করা

CLI ব্যবহার করে Apigee JWT টোকেন তৈরি করা যেতে পারে:

apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

অথবা স্ট্যান্ডার্ড OAuth টোকেন এন্ডপয়েন্ট ব্যবহার করে। Curl-এর উদাহরণ:

curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"

JWT টোকেন ব্যবহার করা

টোকেন পেয়ে গেলে, আপনি সেটি Envoy-এর অনুমোদনের হেডার হিসেবে পাস করে দেন। উদাহরণ:

curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

JWT টোকেন সংক্রান্ত সমস্যা

Envoy বাতিল করা

Envoy টোকেন বাতিল করলে, আপনি এই ধরনের মেসেজ দেখতে পেতে পারেন:

Jwks remote fetch is failed

যদি তাই হয়, তাহলে নিশ্চিত করুন যে আপনার Envoy কনফিগারেশনে remote_jwks বিভাগে একটি সঠিক URI আছে, Envoy সেটি অ্যাক্সেস করতে পারছে এবং আপনি Apigee প্রক্সি ইনস্টল করার সময় সঠিকভাবে সার্টিফিকেট সেট করেছেন। আপনাকে GET কলের মাধ্যমে সরাসরি URI-তে কল করতে হবে এবং সঠিক JSON উত্তর পেতে হবে।

উদাহরণ:

curl https://myorg-eval-test.apigee.net/remote-service/certs

Envoy-এর অন্যান্য মেসেজ এই ধরনের হতে পারে:

  • "Jwt-তে অডিয়েন্সের অনুমতি নেই"
  • "Jwt issuer is not configured"

এগুলি আপনার Envoy কনফিগারেশনের প্রয়োজনীয়তা থেকে আসে যা আপনাকে পরিবর্তন করতে হতে পারে।

টোকেন পরীক্ষা করা

আপনার টোকেন পরীক্ষা করে দেখতে CLI ব্যবহার করতে পারবেন। উদাহরণ

apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

অথবা

apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

ডিবাগিং

সঠিক API key কাজ করে না দেখুন।

লগিং

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy পরিষেবায় আপনি লগিং লেভেল অ্যাডজাস্ট করতে পারবেন। সব লগ stderr-এ পাঠানো হয়।

এলিমেন্ট প্রয়োজনীয় বিবরণ
-l, --log-level বৈধ লেভেল: debug, info, warn, error. লগিং লেভেল অ্যাডজাস্ট করে। ডিফল্ট: info
-j, --json-log JSON রেকর্ড হিসেবে লগ আউটপুট দেয়।

Envoy লগিং প্রদান করে। আরও তথ্যের জন্য, Envoy ডকুমেন্টেশনের নিম্নলিখিত লিঙ্ক দেখুন:

নেটওয়ার্ক প্রক্সি ব্যবহার করা

apigee-remote-service-envoy বাইনারির এনভায়রনমেন্টে HTTP_PROXY এবং HTTPS_PROXY এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে HTTP প্রক্সি যোগ করা যেতে পারে । এগুলি ব্যবহার করার সময়, NO_PROXY এনভায়রনমেন্ট ভেরিয়েবলও ব্যবহার করা যেতে পারে যাতে প্রক্সির মাধ্যমে নির্দিষ্ট হোস্ট না পাঠানো হয়।

HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
NO_PROXY=127.0.0.1,localhost

মনে রাখবেন, apigee-remote-service-envoy থেকে প্রক্সি অ্যাক্সেস করা যেতে হবে।

মেট্রিক্স ও অ্যানালিটিক্স সম্পর্কে

:5001/metrics-এ একটি Prometheus মেট্রিক এন্ডপয়েন্ট উপলভ্য। আপনি এই পোর্ট নম্বর কনফিগার করতে পারবেন। কনফিগারেশন ফাইল দেখুন।

Envoy অ্যানালিটিক্স

Envoy প্রক্সি অ্যানালিটিক্স ডেটা পাওয়া সংক্রান্ত তথ্য নিম্নলিখিত লিঙ্ক থেকে পাওয়া যাবে:

Istio অ্যানালিটিক্স

Envoy প্রক্সি অ্যানালিটিক্স ডেটা পাওয়া সংক্রান্ত তথ্য নিম্নলিখিত লিঙ্ক থেকে পাওয়া যাবে:

Apigee অ্যানালিটিক্স

Apigee Remote Service for Envoy, অ্যানালিটিক্স প্রসেসিংয়ের জন্য Apigee-কে অনুরোধ সংক্রান্ত পরিসংখ্যান পাঠায়। Apigee এই অনুরোধগুলি সংশ্লিষ্ট API প্রোডাক্টের নামের অধীনে রিপোর্ট করে।

Apigee Analytics সম্পর্কে আরও জানতে, Analytics পরিষেবা ওভারভিউ দেখুন।