রুট বোঝা

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

একটি রাউট ProxyEndpoint থেকে TargetEndpoint পর্যন্ত কোনো অনুরোধের পথ নির্ধারণ করে। এই রাউটের মধ্যে API ProxyEndpoint অ্যাক্সেস করার জন্য ব্যবহৃত URL এবং TargetEndpoint দ্বারা সংজ্ঞায়িত ব্যাকএন্ড সার্ভিসের URL অন্তর্ভুক্ত থাকে।

রাউট সম্পর্কে প্রাথমিক ধারণা পেতে এই ভিডিওটি দেখুন, যেখানে ProxyEndpoint এবং TargetEndpoint-এর মধ্যকার সম্পর্ক বর্ণনা করা হয়েছে।

এপিআই প্রক্সি এন্ডপয়েন্টের ইউআরএল নির্ধারণ করা

নিচের ছবিতে দেখানো হয়েছে যে, একটি অ্যাপ থেকে ProxyEndpoint-এ একটি অনুরোধ আসছে এবং সেই অনুরোধটি ব্যাকএন্ড সার্ভিসে পাঠানো হচ্ছে:

Edge-এ একটি API প্রক্সি তৈরি করার পরে, কোনো অ্যাপ প্রক্সিটি অ্যাক্সেস করার জন্য যে ডিফল্ট URL ব্যবহার করে, তার গঠনটি নিম্নরূপ:

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

যেখানে:

  • {org-name} হলো আপনার প্রতিষ্ঠানের নাম। Edge-এ অ্যাকাউন্ট তৈরি করার সময় এই নামটি তৈরি হয়।
  • {env-name} হলো Edge এনভায়রনমেন্টের নাম। ডিফল্টরূপে, ক্লাউডে তৈরি সমস্ত Apigee অর্গানাইজেশনে ' test ' এবং ' prod ' নামে দুটি এনভায়রনমেন্ট প্রোভিশন করা থাকে। একটি API প্রক্সি ডেপ্লয় করার সময়, আপনি এটিকে একটি বা উভয় এনভায়রনমেন্টেই ডেপ্লয় করতে পারেন।
  • এপিআই প্রক্সি তৈরি করার সময় {base-path} এবং {resource-path} নির্ধারণ করা হয়।

যখন Edge-এ কোনো অনুরোধ আসে, তখন Edge অনুরোধটিকে সঠিক ProxyEndpoint-এ পাঠানোর জন্য URL-টি পার্স করে। উদাহরণস্বরূপ, Edge-এ একটি API প্রক্সি অ্যাক্সেস করতে নিম্নলিখিত URL-টি ব্যবহৃত হয়:

http://myOrg-prod.apigee.net/v1/weather/forecastrss

উপরের চিত্রে থাকা এপিআই প্রক্সির ProxyEndpoint সংজ্ঞাটি পরীক্ষা করলে আপনি দেখতে পাবেন, Edge কীভাবে এই URL-টি পার্স করে:

  1. URL-এর ডোমেইন অংশ, http://myOrg-prod.apigee.net , Edge-এর একটি ভার্চুয়াল হোস্টকে নির্দেশ করে। উপরের ProxyEndpoint সংজ্ঞায়, API প্রক্সিটি `default` নামের একটি ভার্চুয়াল হোস্টকে নির্দেশ করতে ` <VirtualHost> ` ট্যাগ ব্যবহার করে। আপনি আপনার পরিবেশে একাধিক ভার্চুয়াল হোস্ট সংজ্ঞায়িত করে রাখতে পারেন।

    একটি ভার্চুয়াল হোস্ট সেই ডোমেইন এবং পোর্টগুলো নির্ধারণ করে, যেগুলোতে একটি এপিআই প্রক্সি উন্মুক্ত থাকে। একটি ভার্চুয়াল হোস্ট আরও নির্ধারণ করে যে, এপিআই প্রক্সিটি HTTP প্রোটোকল ব্যবহার করে অ্যাক্সেস করা হবে, নাকি এনক্রিপ্টেড HTTPS প্রোটোকল ব্যবহার করে। ভার্চুয়াল হোস্ট সম্পর্কে বিস্তারিত তথ্যের জন্য, ‘ভার্চুয়াল হোস্ট সম্পর্কে (বিটা)’ দেখুন।
  2. URL-এর দ্বিতীয় অংশ, /v1/weather , ProxyEndpoint-এর <BasePath> এলিমেন্ট দ্বারা নির্ধারিত হয়। বেস পাথটি অবশ্যই এনভায়রনমেন্টের জন্য API প্রক্সির ক্ষেত্রে অনন্য হতে হবে, যাতে দুটি API প্রক্সির বেস পাথ একই না হয়।
  3. URL-এর তৃতীয় অংশ, /forecastrss , হলো API প্রক্সি দ্বারা সংজ্ঞায়িত একটি রিসোর্স, যার সাথে <Flows> ট্যাগ দ্বারা সংশ্লিষ্ট কন্ডিশনাল ফ্লো (Conditional Flow) সংজ্ঞায়িত থাকে।

ভিডিও: এপিআই প্রক্সি এন্ডপয়েন্ট সম্পর্কে আরও জানতে সংক্ষিপ্ত ভিডিওটি দেখুন।

টার্গেট এন্ডপয়েন্টের URL নির্ধারণ করা

একটি ProxyEndpoint ডেফিনিশনে থাকা <RouteRule> ট্যাগটি API প্রক্সির টার্গেট নির্ধারণ করে এবং ProxyEndpoint রিকোয়েস্টের PreFlow, Conditional Flows ও PostFlow-এর সমস্ত পলিসি প্রসেস হওয়ার পর এটি ইভ্যালুয়েট করা হয়।

একটি ProxyEndpoint টার্গেটকে নিম্নরূপে সংজ্ঞায়িত করতে পারে:

  • একটি ব্যাকএন্ড সার্ভিসের সরাসরি ইউআরএল।
  • একটিমাত্র TargetEndpoint সংজ্ঞা।
  • একাধিক টার্গেটএন্ডপয়েন্ট, যেখানে এপিআই প্রক্সি একটি শর্তের উপর ভিত্তি করে অনুরোধটিকে একটি টার্গেটএন্ডপয়েন্টে প্রেরণ করে।
  • নাল রুট বা টার্গেট, যার অর্থ হলো অনুরোধটি কোনো টার্গেটে পাঠানো হয় না। এর পরিবর্তে, অনুরোধটির সমস্ত প্রক্রিয়াকরণ এবং প্রতিক্রিয়া তৈরি করার কাজটি Edge-এই সম্পন্ন হয়।

ভিডিও: টার্গেট এন্ডপয়েন্ট সম্পর্কে আরও জানতে সংক্ষিপ্ত ভিডিওটি দেখুন।

সরাসরি ইউআরএল

একটি ProxyEndpoint যেকোনো নামযুক্ত TargetEndpoint কনফিগারেশনকে বাইপাস করে সরাসরি একটি ব্যাকএন্ড পরিষেবা কল করতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত <RouteRule> সর্বদা http://api.mycompany.com/myAPI-তে একটি HTTP কল করে:

<RouteRule name="default">
  <URL>http://api.mycompany.com/myAPI</URL> 
</RouteRule>

তবে, TargetEndpoint না থাকায়, আপনি শুধুমাত্র ProxyEndpoint দ্বারা সংজ্ঞায়িত ফ্লোগুলিতেই পলিসি যোগ করতে পারবেন।

একক লক্ষ্যবস্তু

একটি একক টার্গেট ডেফিনিশনে, ProxyEndpoint নামের মাধ্যমে একটি একক TargetEndpoint ডেফিনিশনকে রেফারেন্স করে, যেমনটি উপরের চিত্রে দেখানো হয়েছে:

<RouteRule name="default">
  <TargetEndpoint>default</TargetEndpoint>
</RouteRule>

এই এপিআই প্রক্সিতে পাঠানো সমস্ত অনুরোধ একই টার্গেটএন্ডপয়েন্ট ডেফিনিশনে পাঠানো হয়। টার্গেটএন্ডপয়েন্টের <URL> ট্যাগটি ব্যাকএন্ড সার্ভিসের অবস্থান নির্ধারণ করে। উপরের চিত্রে, টার্গেট ইউআরএলটি হলো http://weather.yahooapis.com

শর্তসাপেক্ষ লক্ষ্য

<RouteRule> ট্যাগটি আপনাকে একটি শর্তের উপর ভিত্তি করে কোনো অনুরোধকে একটি নির্দিষ্ট লক্ষ্যে পাঠাতে সাহায্য করে। টার্গেট এন্ডপয়েন্ট নির্ধারণ করার জন্য আপনি ফ্লো ভেরিয়েবল, কোয়েরি প্যারামিটার, HTTP হেডার, মেসেজের বিষয়বস্তু, অথবা দিনের সময় এবং লোকেলের মতো প্রাসঙ্গিক তথ্য ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি একটি অনুরোধের URL-এ US এবং UK-এর মতো ভৌগোলিক অঞ্চল অন্তর্ভুক্ত করতে পারেন। এরপর আপনি সেই অঞ্চলের উপর ভিত্তি করে অনুরোধটিকে একটি টার্গেট এন্ডপয়েন্টে রাউট করতে পারবেন।

নিম্নলিখিত রাউট নিয়মটি একটি অনুরোধের HTTP হেডার মূল্যায়ন করে। যদি HTTP হেডার ' routeTo'-এর মান 'TargetEndpoint1' হয়, তাহলে অনুরোধটি 'TargetEndpoint1' নামের TargetEndpoint-এ পাঠানো হয়। অন্যথায়, অনুরোধটি 'TargetEndpoint2'-এ পাঠানো হয়।

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
 <TargetEndpoint>TargetEndpoint2</TargetEndpoint>
</RouteRule>

আপনার যদি একাধিক রাউট রুল থাকে, তাহলে একটিকে 'ডিফল্ট' হিসেবে তৈরি করুন, অর্থাৎ এমন একটি রাউট রুল যা শর্তমুক্ত। নিশ্চিত করুন যে ডিফল্ট রাউট রুলটি শর্তাধীন রাউটগুলোর তালিকার শেষে সংজ্ঞায়িত করা হয়েছে, কারণ ProxyEndpoint-এ রুলগুলো উপর থেকে নিচে মূল্যায়ন করা হয়।

আরও দেখুনশর্তসাপেক্ষ রুট এবং শর্তের রেফারেন্স

ভিডিও: কন্ডিশনাল টার্গেট ব্যবহার করে কীভাবে একটি টার্গেট এন্ডপয়েন্টে রাউট করতে হয়, তা শিখতে এই সংক্ষিপ্ত ভিডিওটি দেখুন।

নাল রুট

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

নিম্নলিখিত উদাহরণটি একটি নাল রুট সংজ্ঞায়িত করে:

<RouteRule name="GoNowhere"/>

আরও জানুন