আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
Edge Microgateway v. 2.5.x
দর্শক
এই বিষয়টি সেইসব এজ মাইক্রোগেটওয়ে অপারেটরদের জন্য, যারা মাইক্রোগেটওয়ের সাথে ইনস্টল হওয়া বিদ্যমান প্লাগইনগুলো ব্যবহার করতে চান। এতে স্পাইক অ্যারেস্ট এবং কোটা প্লাগইনগুলো নিয়েও বিস্তারিত আলোচনা করা হয়েছে (উভয়ই ইনস্টলেশনের সাথে অন্তর্ভুক্ত থাকে)। আপনি যদি একজন ডেভেলপার হন এবং নতুন প্লাগইন তৈরি করতে চান, তাহলে ‘কাস্টম প্লাগইন তৈরি করুন’ অংশটি দেখুন।
এজ মাইক্রোগেটওয়ে প্লাগইন বলতে কী বোঝায়?
প্লাগইন হলো একটি Node.js মডিউল যা Edge Microgateway-তে বিভিন্ন কার্যকারিতা যোগ করে। প্লাগইন মডিউলগুলো একটি নির্দিষ্ট প্যাটার্ন অনুসরণ করে এবং Edge Microgateway-এর পরিচিত কোনো স্থানে সংরক্ষিত থাকে, যা মাইক্রোগেটওয়েকে সেগুলোকে স্বয়ংক্রিয়ভাবে খুঁজে বের করতে ও লোড করতে সক্ষম করে। Edge Microgateway-তে বেশ কিছু বিদ্যমান প্লাগইন রয়েছে এবং আপনি কাস্টম প্লাগইনও তৈরি করতে পারেন, যেমনটি "কাস্টম প্লাগইন তৈরি করুন" অংশে ব্যাখ্যা করা হয়েছে।
Edge Microgateway-এর সাথে বান্ডেল করা বিদ্যমান প্লাগইনগুলি
ইনস্টলেশনের সময় এজ মাইক্রোগেটওয়ের সাথে বেশ কিছু বিদ্যমান প্লাগইন সরবরাহ করা হয়। এগুলোর মধ্যে রয়েছে:
| প্লাগইন | ডিফল্টরূপে সক্রিয় করা হয়েছে | বর্ণনা |
|---|---|---|
| বিশ্লেষণ | হ্যাঁ | Edge Microgateway থেকে Apigee Edge-এ অ্যানালিটিক্স ডেটা পাঠায়। |
| ওঅথ | হ্যাঁ | Edge Microgateway-তে OAuth টোকেন এবং API Key যাচাইকরণ যুক্ত করে। Edge Microgateway সেট আপ এবং কনফিগার করা দেখুন। |
| কোটা | না | Edge Microgateway-তে পাঠানো অনুরোধের উপর কোটা প্রয়োগ করে। কোটা সংরক্ষণ ও ব্যবস্থাপনার জন্য Apigee Edge ব্যবহার করে। কোটা প্লাগইন ব্যবহার দেখুন। |
| স্পাইকঅ্যারেস্ট | না | ট্র্যাফিক স্পাইক এবং DoS আক্রমণ থেকে সুরক্ষা দেয়। স্পাইক অ্যারেস্ট প্লাগইন ব্যবহার দেখুন। |
| হেডার-আপারকেস | না | ডেভেলপারদের কাস্টম প্লাগইন লিখতে সাহায্য করার জন্য একটি নির্দেশিকা হিসেবে মন্তব্যসহ একটি নমুনা প্রক্সি। এজ মাইক্রোগেটওয়ে নমুনা প্লাগইনটি দেখুন। |
| জমা-অনুরোধ | না | প্লাগইন চেইনের পরবর্তী হ্যান্ডলারে ডেটা পাঠানোর আগে, এটি অনুরোধের ডেটা একটি একক অবজেক্টে একত্রিত করে। এমন ট্রান্সফর্ম প্লাগইন লেখার জন্য এটি উপযোগী, যেগুলোকে একটি একক, একত্রিত অনুরোধ কন্টেন্ট অবজেক্টের উপর কাজ করতে হয়। |
| সঞ্চিত-প্রতিক্রিয়া | না | প্লাগইন চেইনের পরবর্তী হ্যান্ডলারে ডেটা পাঠানোর আগে রেসপন্স ডেটা একটি একক অবজেক্টে একত্রিত করে। এমন ট্রান্সফর্ম প্লাগইন লেখার জন্য এটি উপযোগী, যেগুলোকে একটি একক, একত্রিত রেসপন্স কন্টেন্ট অবজেক্টের উপর কাজ করতে হয়। |
| বড় হাতের অক্ষরে রূপান্তর করুন | না | অনুরোধ বা প্রতিক্রিয়ার ডেটা রূপান্তর করে। এই প্লাগইনটি একটি ট্রান্সফর্ম প্লাগইনের সর্বোত্তম অনুশীলনমূলক বাস্তবায়ন। উদাহরণ প্লাগইনটি একটি সাধারণ রূপান্তর সম্পাদন করে (অনুরোধ বা প্রতিক্রিয়ার ডেটাকে আপারকেসে রূপান্তর করে); তবে, এটিকে সহজেই অন্যান্য ধরণের রূপান্তর, যেমন XML থেকে JSON, সম্পাদনের জন্য অভিযোজিত করা যেতে পারে। |
| json2xm l | না | accept বা content-type হেডারের উপর ভিত্তি করে অনুরোধ বা প্রতিক্রিয়ার ডেটা পরিবর্তন করে। বিস্তারিত জানতে, GitHub-এ প্লাগইনটির ডকুমেন্টেশন দেখুন । |
| কোটা-স্মৃতি | না | এজ মাইক্রোগেটওয়েতে পাঠানো অনুরোধের উপর কোটা আরোপ করে। কোটাগুলো স্থানীয় মেমরিতে সংরক্ষণ ও পরিচালনা করে। |
| স্বাস্থ্য পরীক্ষা | না | Edge Microgateway প্রসেস সম্পর্কে তথ্য প্রদান করে — যেমন মেমরি ব্যবহার, সিপিইউ ব্যবহার ইত্যাদি। প্লাগইনটি ব্যবহার করতে, আপনার Edge Microgateway ইনস্ট্যান্সে /healthcheck ইউআরএলটি কল করুন। এই প্লাগইনটি একটি উদাহরণ হিসেবে তৈরি করা হয়েছে, যা ব্যবহার করে আপনি আপনার নিজস্ব হেলথ চেকিং প্লাগইন তৈরি করতে পারেন। |
বিদ্যমান প্লাগইনগুলি কোথায় পাবেন
Edge Microgateway-এর সাথে বান্ডেল করা বিদ্যমান প্লাগইনগুলি এখানে অবস্থিত, যেখানে [prefix] হলো npm প্রিফিক্স ডিরেক্টরি। আপনি যদি এই ডিরেক্টরিটি খুঁজে না পান, তাহলে "Where is Edge Microgateway installed" দেখুন।
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins
প্লাগইন যোগ করা এবং কনফিগার করা
প্লাগইন যোগ ও কনফিগার করতে এই পদ্ধতি অনুসরণ করুন:
- Edge Microgateway বন্ধ করুন।
- একটি Edge Microgateway কনফিগারেশন ফাইল খুলুন। বিস্তারিত জানতে, বিকল্পগুলির জন্য 'কনফিগারেশন পরিবর্তন করা' দেখুন।
- নিচের নির্দেশ অনুযায়ী কনফিগ ফাইলের
plugins:sequenceএলিমেন্টে প্লাগইনটি যোগ করুন। প্লাগইনগুলো এই তালিকায় যে ক্রমে রয়েছে, সেই ক্রমেই কার্যকর হবে।
edgemicro:
home: ../gateway
port: 8000
max_connections: -1
max_connections_hard: -1
logging:
level: info
dir: /var/tmp
stats_log_interval: 60
plugins:
dir: ../plugins
sequence:
- oauth
- plugin-name
- প্লাগইনটি কনফিগার করুন। কিছু প্লাগইনের ঐচ্ছিক প্যারামিটার থাকে যা আপনি কনফিগ ফাইলে সেট করতে পারেন। উদাহরণস্বরূপ, স্পাইক অ্যারেস্ট প্লাগইনটি কনফিগার করতে আপনি নিম্নলিখিত স্ট্যানজাটি যোগ করতে পারেন। আরও তথ্যের জন্য ‘স্পাইক অ্যারেস্ট প্লাগইন ব্যবহার’ দেখুন।
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest spikearrest: timeUnit: minute allow: 10
- ফাইলটি সংরক্ষণ করুন।
- আপনি কোন কনফিগারেশন ফাইলটি সম্পাদনা করেছেন তার উপর নির্ভর করে Edge Microgateway পুনরায় চালু বা রিলোড করুন।
প্লাগইন-নির্দিষ্ট কনফিগারেশন
এই ডিরেক্টরিতে একটি প্লাগইন-নির্দিষ্ট কনফিগারেশন তৈরি করে আপনি কনফিগ ফাইলে নির্দিষ্ট করা প্লাগইন প্যারামিটারগুলো ওভাররাইড করতে পারেন:
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config
যেখানে [prefix] হলো npm প্রিফিক্স ডিরেক্টরি। আপনি যদি এই ডিরেক্টরিটি খুঁজে না পান, তাহলে “Where is Edge Microgateway installed” দেখুন।
plugins/<plugin_name>/config/default.yaml । উদাহরণস্বরূপ, আপনি এই ব্লকটি plugins/spikearrest/config/default.yaml এ রাখতে পারেন, এবং এটি অন্য যেকোনো কনফিগারেশন সেটিংসকে ওভাররাইড করবে।
spikearrest: timeUnit: hour allow: 10000 buffersize: 0
স্পাইক অ্যারেস্ট প্লাগইন ব্যবহার করে
স্পাইক অ্যারেস্ট প্লাগইনটি ট্র্যাফিকের আকস্মিক বৃদ্ধি থেকে সুরক্ষা প্রদান করে। এটি একটি এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স দ্বারা প্রক্রিয়াকৃত অনুরোধের সংখ্যা সীমিত করে।
স্পাইক অ্যারেস্ট প্লাগইন যোগ করা হচ্ছে
প্লাগইন যোগ করা এবং কনফিগার করা দেখুন।
স্পাইক অ্যারেস্টের জন্য নমুনা কনফিগারেশন
edgemicro:
home: ../gateway
port: 8000
max_connections: -1
max_connections_hard: -1
logging:
level: info
dir: /var/tmp
stats_log_interval: 60
plugins:
dir: ../plugins
sequence:
- oauth
- spikearrest
spikearrest:
timeUnit: minute
allow: 10
bufferSize: 5
স্পাইক অ্যারেস্টের জন্য কনফিগারেশন বিকল্প
- সময় একক : কত ঘন ঘন স্পাইক অ্যারেস্ট এক্সিকিউশন উইন্ডো রিসেট হবে। বৈধ মান হলো সেকেন্ড বা মিনিট।
- অনুমতি দিন : timeUnit সময়কালে অনুমোদিত অনুরোধের সর্বোচ্চ সংখ্যা। আরও দেখুন যদি আপনি একাধিক Edge Micro প্রসেস চালান ।
- bufferSize : (ঐচ্ছিক, ডিফল্ট = 0) যদি bufferSize > 0 হয়, তাহলে স্পাইক অ্যারেস্ট এই সংখ্যক অনুরোধ একটি বাফারে সংরক্ষণ করে। পরবর্তী এক্সিকিউশন "উইন্ডো" শুরু হওয়ার সাথে সাথেই, বাফারে রাখা অনুরোধগুলো প্রথমে প্রসেস করা হবে। আরও দেখুন একটি বাফার যোগ করা ।
স্পাইক অ্যারেস্ট কীভাবে কাজ করে?
স্পাইক অ্যারেস্টকে নির্দিষ্ট সংখ্যক অনুরোধে ট্র্যাফিক সীমিত করার উপায় হিসেবে না ভেবে, বরং ট্র্যাফিকের আকস্মিক বৃদ্ধি থেকে সাধারণভাবে সুরক্ষা দেওয়ার একটি উপায় হিসেবে ভাবুন। আপনার এপিআই এবং ব্যাকএন্ড একটি নির্দিষ্ট পরিমাণ ট্র্যাফিক সামলাতে পারে, এবং স্পাইক অ্যারেস্ট পলিসি আপনাকে আপনার কাঙ্ক্ষিত সাধারণ পরিমাণে ট্র্যাফিককে মসৃণ করতে সাহায্য করে।
আপনার প্রবেশ করানো প্রতি-মিনিট বা প্রতি-সেকেন্ডের আক্ষরিক মান থেকে আপনি যা আশা করতে পারেন, রানটাইম স্পাইক অ্যারেস্টের আচরণ তার থেকে ভিন্ন হয়।
উদাহরণস্বরূপ, ধরুন আপনি প্রতি মিনিটে ৩০টি অনুরোধের একটি হার নির্দিষ্ট করেছেন, এইভাবে:
spikearrest: timeUnit: minute allow: 30
পরীক্ষার সময় আপনার মনে হতে পারে যে, এক মিনিটের মধ্যে ৩০টি অনুরোধ পাঠানো গেলেও আপনি ১ সেকেন্ডে তা পাঠাতে পারবেন। কিন্তু নীতিমালাটি এভাবে সেটিংটি প্রয়োগ করে না। ভেবে দেখলে, কিছু কিছু পরিবেশে ১ সেকেন্ডের মধ্যে ৩০টি অনুরোধ পাঠানোকে একটি ছোটখাটো স্পাইক হিসেবে বিবেচনা করা যেতে পারে।
তাহলে আসলে কী ঘটে? স্পাইক-সদৃশ আচরণ প্রতিরোধ করতে, স্পাইক অ্যারেস্ট আপনার সেটিংসকে নিম্নলিখিতভাবে ছোট ছোট ব্যবধানে ভাগ করে অনুমোদিত ট্র্যাফিককে মসৃণ করে:
প্রতি মিনিটের হার
প্রতি মিনিটের হারকে সেকেন্ডের অনুমোদিত অনুরোধের ব্যবধানে মসৃণ করা হয়। উদাহরণস্বরূপ, প্রতি মিনিটে ৩০টি অনুরোধকে এইভাবে মসৃণ করা হয়:
৬০ সেকেন্ড (১ মিনিট) / ৩০ = ২-সেকেন্ডের ব্যবধান, অর্থাৎ প্রতি ২ সেকেন্ডে প্রায় ১টি অনুরোধ অনুমোদিত। ২ সেকেন্ডের মধ্যে দ্বিতীয় অনুরোধটি ব্যর্থ হবে। এছাড়াও, এক মিনিটের মধ্যে ৩১তম অনুরোধটিও ব্যর্থ হবে।
প্রতি সেকেন্ডে হার
প্রতি সেকেন্ডের হারকে মিলিসেকেন্ডের ব্যবধানে অনুমোদিত অনুরোধের সংখ্যায় রূপান্তরিত করা হয়। উদাহরণস্বরূপ, প্রতি সেকেন্ডে ১০টি অনুরোধকে এইভাবে রূপান্তরিত করা হয়:
১০০০ মিলিসেকেন্ড (১ সেকেন্ড) / ১০ = ১০০-মিলিসেকেন্ডের ব্যবধান, অর্থাৎ প্রতি ১০০ মিলিসেকেন্ডে প্রায় ১টি অনুরোধ অনুমোদিত। ১০০ মিলিসেকেন্ডের মধ্যে দ্বিতীয় অনুরোধটি ব্যর্থ হবে। এছাড়াও, এক সেকেন্ডের মধ্যে ১১তম অনুরোধটিও ব্যর্থ হবে।
যখন সীমা অতিক্রম করা হয়
নির্দিষ্ট সময়সীমার মধ্যে অনুরোধের সংখ্যা সীমা অতিক্রম করলে, স্পাইক অ্যারেস্ট HTTP 503 স্ট্যাটাস সহ এই ত্রুটি বার্তাটি ফেরত দেয়:
{"error": "spike arrest policy violated"}একটি বাফার যোগ করা
পলিসিতে একটি বাফার যোগ করার বিকল্প আপনার কাছে আছে। ধরা যাক, আপনি বাফারটি ১০-এ সেট করেছেন। আপনি দেখবেন যে, স্পাইক অ্যারেস্ট লিমিট অতিক্রম করলে এপিআই (API) সঙ্গে সঙ্গে কোনো এরর দেখায় না। এর পরিবর্তে, রিকোয়েস্টগুলো (নির্দিষ্ট সংখ্যা পর্যন্ত) বাফার করা হয় এবং পরবর্তী উপযুক্ত এক্সিকিউশন উইন্ডো পাওয়া মাত্রই বাফার করা রিকোয়েস্টগুলো প্রসেস করা হয়। ডিফল্ট বাফারসাইজ হলো ০।
আপনি যদি একাধিক Edge Micro প্রসেস চালান
অনুমোদিত অনুরোধের সংখ্যা চলমান Edge Micro ওয়ার্কার প্রসেসের সংখ্যার উপর নির্ভর করে। স্পাইক অ্যারেস্ট প্রতিটি ওয়ার্কার প্রসেসের জন্য অনুমোদিত অনুরোধের সংখ্যা গণনা করে। ডিফল্টরূপে, Edge Micro প্রসেসের সংখ্যা সেই মেশিনের সিপিইউ-এর সংখ্যার সমান হয় যেখানে Edge Micro ইনস্টল করা আছে। তবে, আপনি start কমান্ডে --processes অপশনটি ব্যবহার করে Edge Micro চালু করার সময় ওয়ার্কার প্রসেসের সংখ্যা কনফিগার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি চান যে একটি নির্দিষ্ট সময়কালে ১০০টি অনুরোধে স্পাইক অ্যারেস্ট ট্রিগার হোক, এবং আপনি যদি --processes 4 অপশন দিয়ে Edge Microgateway চালু করেন, তাহলে স্পাইক অ্যারেস্ট কনফিগে allow: 25 সেট করুন। সংক্ষেপে, সাধারণ নিয়মটি হলো allow কনফিগ প্যারামিটারটিকে "কাঙ্ক্ষিত স্পাইক অ্যারেস্ট সংখ্যা / প্রসেসের সংখ্যা" এই মানে সেট করা।
কোটা প্লাগইন ব্যবহার করে
কোটা একটি অ্যাপকে এক ঘন্টা, দিন, সপ্তাহ বা মাস জুড়ে কোনো এপিআই-তে কতগুলো অনুরোধ বার্তা জমা দেওয়ার অনুমতি দেওয়া হয় তা নির্দিষ্ট করে। যখন কোনো অ্যাপ তার কোটার সীমায় পৌঁছে যায়, তখন পরবর্তী এপিআই কলগুলো প্রত্যাখ্যান করা হয়। আরও দেখুন , স্পাইক অ্যারেস্ট এবং কোটার মধ্যে পার্থক্য কী ?
কোটা প্লাগইন যোগ করা
প্লাগইন যোগ করা এবং কনফিগার করা দেখুন।
Apigee Edge-এ পণ্যের কনফিগারেশন
আপনি Apigee Edge UI-তে API প্রোডাক্ট কনফিগার করার জায়গায় কোটা নির্ধারণ করেন। আপনাকে জানতে হবে কোন প্রোডাক্টে সেই মাইক্রোগেটওয়ে-অ্যাওয়্যার প্রক্সিটি রয়েছে, যেটিকে আপনি কোটা দিয়ে সীমিত করতে চান। এই প্রোডাক্টটি অবশ্যই একটি ডেভেলপার অ্যাপে যুক্ত থাকতে হবে। যখন আপনি ডেভেলপার অ্যাপে কী ব্যবহার করে অথেনটিকেটেড API কল করবেন, তখন সেই API কলগুলিতে কোটা প্রয়োগ করা হবে।
- আপনার Apigee Edge অর্গানাইজেশন অ্যাকাউন্টে লগ ইন করুন।
- Edge UI-তে, সেই মাইক্রোগেটওয়ে-অ্যাওয়্যার প্রক্সির সাথে যুক্ত প্রোডাক্টটি খুলুন, যেটিতে আপনি কোটা প্রয়োগ করতে চান।
- UI-তে, পাবলিশ মেনু থেকে প্রোডাক্টস নির্বাচন করুন।
- যে API-টিতে আপনি কোটা প্রয়োগ করতে চান, সেটি ধারণকারী প্রোডাক্টটি খুলুন।
- সম্পাদনা-তে ক্লিক করুন।
- কোটা ফিল্ডে কোটার ব্যবধান নির্দিষ্ট করুন। উদাহরণস্বরূপ, প্রতি এক মিনিটে ১০০টি অনুরোধ। অথবা প্রতি ২ ঘণ্টায় ৫০,০০০টি অনুরোধ।

- সংরক্ষণ করুন- এ ক্লিক করুন।
- পণ্যটি একটি ডেভেলপার অ্যাপে যুক্ত করা হয়েছে কিনা তা নিশ্চিত করুন। অথেনটিকেটেড এপিআই কল করার জন্য আপনার এই অ্যাপের কী-গুলো প্রয়োজন হবে।
কোটার জন্য নমুনা কনফিগারেশন
edgemicro:
home: ../gateway
port: 8000
max_connections: -1
max_connections_hard: -1
logging:
level: info
dir: /var/tmp
stats_log_interval: 60
plugins:
dir: ../plugins
sequence:
- oauth
- quota
কোটার জন্য কনফিগারেশন বিকল্প
কোটা প্লাগইনের জন্য কোনো অতিরিক্ত কনফিগারেশন বিকল্প নেই।
কোটা প্লাগইন পরীক্ষা করা হচ্ছে
কোটা অতিক্রম করলে, ক্লায়েন্টকে নিম্নলিখিত বার্তাসহ একটি HTTP 403 স্ট্যাটাস ফেরত পাঠানো হয়:
{"error": "exceeded quota"}স্পাইক অ্যারেস্ট এবং কোটার মধ্যে পার্থক্য কী?
নির্দিষ্ট কাজের জন্য সঠিক টুল বেছে নেওয়া গুরুত্বপূর্ণ। কোটা পলিসি নির্ধারণ করে দেয় যে, একটি ক্লায়েন্ট অ্যাপ এক ঘন্টা, দিন, সপ্তাহ বা মাস জুড়ে কোনো এপিআই-তে কতগুলো রিকোয়েস্ট মেসেজ জমা দিতে পারবে। কোটা পলিসি একটি ডিস্ট্রিবিউটেড কাউন্টারের মাধ্যমে ক্লায়েন্ট অ্যাপগুলোর ব্যবহারের সীমা কার্যকর করে, যা আগত রিকোয়েস্টগুলোর সংখ্যা গণনা করে।
অপারেশনাল ট্র্যাফিক ম্যানেজমেন্টের জন্য নয়, বরং ডেভেলপার ও পার্টনারদের সাথে ব্যবসায়িক চুক্তি বা এসএলএ (SLA) কার্যকর করতে কোটা পলিসি ব্যবহার করুন। উদাহরণস্বরূপ, কোনো ফ্রি সার্ভিসের ট্র্যাফিক সীমিত করতে এবং অর্থ প্রদানকারী গ্রাহকদের সম্পূর্ণ অ্যাক্সেস দেওয়ার জন্য কোটা ব্যবহার করা যেতে পারে।
এপিআই ট্র্যাফিকের আকস্মিক বৃদ্ধি থেকে সুরক্ষার জন্য স্পাইক অ্যারেস্ট ব্যবহার করুন। সাধারণত, সম্ভাব্য ডিডিওএস বা অন্যান্য ক্ষতিকারক আক্রমণ প্রতিহত করতে স্পাইক অ্যারেস্ট ব্যবহার করা হয়।