অপারেশন গাইড

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

কীভাবে একটি এপিআই কী পাবেন

নিম্নলিখিত উদাহরণটি ব্যাখ্যা করে যে কীভাবে একটি API কী পাওয়া যায়, যা আপনি Apigee Adapter for Envoy-এর মাধ্যমে প্রক্সি করা একটি টার্গেট সার্ভিসে করা API কলগুলিকে যাচাই করতে ব্যবহার করতে পারেন।

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

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

২. একজন ডেভেলপার তৈরি করুন

আপনি টেস্টিংয়ের জন্য একজন বিদ্যমান ডেভেলপারকে ব্যবহার করতে পারেন, অথবা নিম্নোক্তভাবে একজন নতুন ডেভেলপার তৈরি করতে পারেন:

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

৩. একটি এপিআই পণ্য তৈরি করুন

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

  1. সাইড নেভিগেশন মেনু থেকে Publish > API Products নির্বাচন করুন।
  2. ক্লিক করুন + এপিআই পণ্য
  3. পণ্যের বিবরণ পৃষ্ঠাটি নিম্নরূপভাবে পূরণ করুন। নির্দেশ না দেওয়া পর্যন্ত ' সংরক্ষণ করুন' বোতামে ক্লিক করবেন না।
  4. মাঠ মূল্য
    নাম httpbin-product
    প্রদর্শনের নাম httpbin product
    পরিবেশ your_environment

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

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

    আরও দেখুন কোটা বোঝা

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

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

  7. সংরক্ষণ করুন- এ ক্লিক করুন।

৪. একটি ডেভেলপার অ্যাপ তৈরি করুন

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

এপিআই পণ্য সম্পর্কে

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

এপিআই পণ্যের সংজ্ঞা

Apigee-তে একটি API প্রোডাক্ট নির্ধারণ করার সময়, আপনি বেশ কিছু প্যারামিটার সেট করতে পারেন যা রিকোয়েস্টগুলো মূল্যায়ন করতে ব্যবহৃত হবে:

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

দূরবর্তী পরিষেবা লক্ষ্য

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

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

এপিআই রিসোর্স পাথ

প্রবেশ করানো পাথটি নিম্নলিখিত নিয়ম অনুসারে মিলেছে:

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

কোটা

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

কোটা ব্যবহারের ক্ষেত্র

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

একটি এপিআই প্রোডাক্টে কোটা সংজ্ঞায়িত করা হয়।

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

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

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

যেখানে কোটা বজায় রাখা হয়

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

OAuth স্কোপ

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

ডেভেলপার অ্যাপস সম্পর্কে

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

JWT ভিত্তিক প্রমাণীকরণ ব্যবহার করে

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

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

Envoy তার নিজস্বJWT Authentication Filter ব্যবহার করে JWT যাচাইকরণ এবং প্রমাণীকরণের কাজটি সম্পন্ন করে।

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

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

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

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 টোকেন ব্যবহার করে

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

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

JWT টোকেন ব্যর্থতা

দূত প্রত্যাখ্যান

যদি 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

দূতের কাছ থেকে আসা অন্যান্য বার্তাগুলো দেখতে এইরকম হতে পারে:

  • Jwt-তে শ্রোতাদের অনুমতি নেই।
  • Jwt ইস্যুকারী কনফিগার করা নেই।

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

একটি টোকেন পরিদর্শন করুন

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

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

অথবা

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

ডিবাগিং

বৈধ এপিআই কী ব্যর্থ হলে দেখুন।

লগিং

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

উপাদান প্রয়োজনীয় বর্ণনা
-l, --লগ-স্তর বৈধ স্তরসমূহ: ডিবাগ, তথ্য, সতর্কীকরণ, ত্রুটি। লগিং স্তর সামঞ্জস্য করে। ডিফল্ট: তথ্য
-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 পোর্টে উপলব্ধ আছে। আপনি এই পোর্ট নম্বরটি কনফিগার করতে পারেন। কনফিগারেশন ফাইলটি দেখুন।

এনভয় অ্যানালিটিক্স

নিম্নলিখিত লিঙ্কগুলিতে এনভয় প্রক্সি অ্যানালিটিক্স ডেটা প্রাপ্তির বিষয়ে তথ্য দেওয়া আছে:

ইস্টিও অ্যানালিটিক্স

নিম্নলিখিত লিঙ্কগুলিতে এনভয় প্রক্সি অ্যানালিটিক্স ডেটা প্রাপ্তির বিষয়ে তথ্য দেওয়া আছে:

অ্যাপিজি অ্যানালিটিক্স

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

Apigee অ্যানালিটিক্স সম্পর্কে তথ্যের জন্য, অ্যানালিটিক্স পরিষেবাগুলির সংক্ষিপ্ত বিবরণ দেখুন।