প্লাগইন ব্যবহার করুন

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

Edge Microgateway v. 3.3.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

প্লাগইন যোগ করা এবং কনফিগার করা

প্লাগইন যোগ ও কনফিগার করতে এই পদ্ধতি অনুসরণ করুন:

  1. Edge Microgateway বন্ধ করুন।
  2. একটি Edge Microgateway কনফিগারেশন ফাইল খুলুন। বিস্তারিত জানতে, বিকল্পগুলির জন্য 'কনফিগারেশন পরিবর্তন করা' দেখুন।
  3. নিচের নির্দেশ অনুযায়ী কনফিগ ফাইলের 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
  1. প্লাগইনটি কনফিগার করুন। কিছু প্লাগইনের ঐচ্ছিক প্যারামিটার থাকে যা আপনি কনফিগ ফাইলে সেট করতে পারেন। উদাহরণস্বরূপ, স্পাইক অ্যারেস্ট প্লাগইনটি কনফিগার করতে আপনি নিম্নলিখিত স্ট্যানজাটি যোগ করতে পারেন। আরও তথ্যের জন্য ‘স্পাইক অ্যারেস্ট প্লাগইন ব্যবহার’ দেখুন।
    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
  1. ফাইলটি সংরক্ষণ করুন।
  2. আপনি কোন কনফিগারেশন ফাইলটি সম্পাদনা করেছেন তার উপর নির্ভর করে 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 কলগুলিতে কোটা প্রয়োগ করা হবে।

  1. আপনার Apigee Edge অর্গানাইজেশন অ্যাকাউন্টে লগ ইন করুন।
  2. Edge UI-তে, সেই মাইক্রোগেটওয়ে-অ্যাওয়্যার প্রক্সির সাথে যুক্ত প্রোডাক্টটি খুলুন, যেটিতে আপনি কোটা প্রয়োগ করতে চান।
    1. UI-তে, পাবলিশ মেনু থেকে প্রোডাক্টস নির্বাচন করুন।
    2. যে API-টিতে আপনি কোটা প্রয়োগ করতে চান, সেটি ধারণকারী প্রোডাক্টটি খুলুন।
    3. সম্পাদনা-তে ক্লিক করুন।
    4. কোটা ফিল্ডে কোটার ব্যবধান নির্দিষ্ট করুন। উদাহরণস্বরূপ, প্রতি এক মিনিটে ১০০টি অনুরোধ। অথবা প্রতি ২ ঘণ্টায় ৫০,০০০টি অনুরোধ।

  1. সংরক্ষণ করুন- এ ক্লিক করুন।
  2. পণ্যটি একটি ডেভেলপার অ্যাপে যুক্ত করা হয়েছে কিনা তা নিশ্চিত করুন। অথেনটিকেটেড এপিআই কল করার জন্য আপনার এই অ্যাপের কী-গুলো প্রয়োজন হবে।

কোটার জন্য নমুনা কনফিগারেশন

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

কোটার জন্য কনফিগারেশন বিকল্প

কোটা প্লাগইনটি কনফিগার করতে, নিম্নলিখিত উদাহরণে দেখানো অনুযায়ী আপনার কনফিগারেশন ফাইলে quotas এলিমেন্টটি যোগ করুন:

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
quotas:
    bufferSize:
      hour: 20000
      minute: 500
      month: 1
      default: 10000
    useDebugMpId: true
    failOpen: true
    isHTTPStatusTooManyRequestEnabled: true
...
বিকল্প বর্ণনা
bufferSize

(পূর্ণসংখ্যা) bufferSize কনফিগারেশনটি আপনাকে ঠিক করতে দেয় যে Edge Microgateway কত ঘন ঘন Apigee Edge-এর সাথে তার কোটা সংখ্যা সিঙ্ক করবে। bufferSize বোঝার জন্য, নিম্নলিখিত উদাহরণ কনফিগারেশনটি বিবেচনা করুন:

quotas:
 bufferSize:
  minute: 500
  default: 10000
 useDebugMpId: true
 failOpen: true

ডিফল্টরূপে, যদি কোটা ইন্টারভ্যাল "মিনিট"-এ সেট করা থাকে, তাহলে মাইক্রোগেটওয়ে প্রতি ৫ সেকেন্ডে Apigee Edge-এর সাথে তার কোটা কাউন্টার সিঙ্ক করে। উপরের কনফিগারেশন অনুযায়ী, যদি API প্রোডাক্টে কোটা ইন্টারভ্যাল "মিনিট"-এ সেট করা থাকে, তাহলে Edge মাইক্রোগেটওয়ে প্রতি ৫০০টি রিকোয়েস্টের পর অথবা ৫ সেকেন্ড পর, দুটির মধ্যে যেটি আগে ঘটবে, তার পরে বর্তমান কোটা সংখ্যা জানার জন্য Edge-এর সাথে সিঙ্ক করবে। আরও তথ্যের জন্য, " কোটা কীভাবে গণনা করা হয় তা বোঝা " দেখুন।

অনুমোদিত সময়ের এককগুলো হলো: minute , hour , day , week , month এবং default

isHTTPStatusTooManyRequestEnabled

কোটা লঙ্ঘনের ক্ষেত্রে স্ট্যাটাস ৪০৩-এর পরিবর্তে HTTP ৪২৯ রেসপন্স স্ট্যাটাস ফেরত দেওয়ার জন্য কোটা প্লাগইনটি কনফিগার করে।

ডিফল্ট: false । ডিফল্টরূপে, বা যদি ফ্ল্যাগটি false -এ সেট করা থাকে, তাহলে কোটা অতিক্রম করলে কোটা HTTP স্ট্যাটাস 403 রিটার্ন করে।

ফ্ল্যাগটি ' true সেট করা থাকলে, কোটা অতিক্রম করলে HTTP স্ট্যাটাস 429 রিটার্ন করা হয়।

ডিফল্ট HTTP রিটার্ন স্ট্যাটাস 429 এ পরিবর্তন করতে, নিম্নলিখিত কনফিগারেশনটি ব্যবহার করুন:

edgemicro:
...
quotas:
  isHTTPStatusTooManyRequestEnabled: true
...
failOpen যখন এই ফিচারটি চালু করা থাকে, তখন যদি কোটা-প্রসেসিং-এ কোনো ত্রুটি ঘটে অথবা Edge-এ পাঠানো "কোটা অ্যাপ্লাই" অনুরোধটি রিমোট কোটা কাউন্টার আপডেট করতে ব্যর্থ হয়, তাহলে পরবর্তী সফল রিমোট কোটা সিঙ্ক না হওয়া পর্যন্ত কোটা শুধুমাত্র লোকাল গণনার ভিত্তিতেই প্রসেস করা হবে। এই উভয় ক্ষেত্রেই, রিকোয়েস্ট অবজেক্টে একটি quota-failed-open ফ্ল্যাগ সেট করা হয়।

কোটা 'ফেইল ওপেন' ফিচারটি সক্রিয় করতে, নিম্নলিখিত কনফিগারেশনটি সেট করুন:

edgemicro:
...
quotas:
  failOpen: true
...
useDebugMpId কোটা রেসপন্সে এমপি (মেসেজ প্রসেসর) আইডি লগ করা চালু করতে এই ফ্ল্যাগটি ' true তে সেট করুন।

এই বৈশিষ্ট্যটি ব্যবহার করতে হলে, আপনাকে নিম্নলিখিত কনফিগারেশনটি সেট করতে হবে:

edgemicro:
...
quotas:
  useDebugMpId: true
...

যখন useDebugMpId সেট করা থাকে, তখন Edge থেকে আসা কোটা রেসপন্সগুলোতে MP id অন্তর্ভুক্ত থাকবে এবং Edge Microgateway দ্বারা তা লগ করা হবে। উদাহরণস্বরূপ:

{
    "allowed": 20,
    "used": 3,
    "exceeded": 0,
    "available": 17,
    "expiryTime": 1570748640000,
    "timestamp": 1570748580323,
    "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
}
useRedis যদি ' true সেট করা হয়, তাহলে প্লাগইনটি কোটা ব্যাকস্টোরের জন্য Redis ব্যবহার করে। বিস্তারিত জানতে, 'Using a Redis backis store for quota ' দেখুন।

কোটা কীভাবে গণনা করা হয় তা বোঝা

ডিফল্টরূপে, কোটা ব্যবধান 'মিনিট'-এ সেট করা থাকলে মাইক্রোগেটওয়ে প্রতি ৫ সেকেন্ডে Apigee Edge-এর সাথে তার কোটা কাউন্টার সিঙ্ক করে। যদি ব্যবধানটি 'মিনিট'-এর চেয়ে উচ্চতর কোনো স্তরে, যেমন 'সপ্তাহ' বা 'মাস'-এ সেট করা হয়, তাহলে ডিফল্ট রিফ্রেশ সময়কাল হয় ১ মিনিট।

এটা মনে রাখা গুরুত্বপূর্ণ যে, Apigee Edge-এ সংজ্ঞায়িত API প্রোডাক্টগুলিতে আপনাকে কোটা ব্যবধান নির্দিষ্ট করতে হয়। কোটা ব্যবধান নির্দিষ্ট করে যে, প্রতি মিনিট, ঘন্টা, দিন, সপ্তাহ বা মাসে কতগুলি অনুরোধের অনুমতি রয়েছে। উদাহরণস্বরূপ, প্রোডাক্ট A-এর কোটা ব্যবধান প্রতি মিনিটে ১০০টি অনুরোধ এবং প্রোডাক্ট B-এর কোটা ব্যবধান প্রতি ঘন্টায় ১০,০০০টি অনুরোধ হতে পারে।

Edge Microgateway quota প্লাগইনের YAML কনফিগারেশন কোটার ব্যবধান নির্ধারণ করে না ; বরং, এটি একটি স্থানীয় Edge Microgateway ইনস্ট্যান্স কত ঘন ঘন Apigee Edge-এর সাথে তার কোটার সংখ্যা সিঙ্ক করবে, তা সামঞ্জস্য করার একটি উপায় প্রদান করে।

উদাহরণস্বরূপ, ধরে নিন Apigee Edge-এ তিনটি API প্রোডাক্ট সংজ্ঞায়িত করা আছে, যেগুলোর জন্য নিম্নলিখিত কোটা ব্যবধান নির্দিষ্ট করা হয়েছে:

  • পণ্য A-এর জন্য প্রতি মিনিটে ১০০টি অনুরোধের কোটা রয়েছে।
  • পণ্য B-এর জন্য প্রতি ঘন্টায় ৫০০০টি অনুরোধের কোটা রয়েছে।
  • প্রোডাক্ট C-এর জন্য প্রতি মাসে ১,০০,০০০০টি অনুরোধের কোটা রয়েছে।

এই কোটা সেটিংসগুলো মাথায় রেখে, Edge Microgateway quota প্লাগইনটি কীভাবে কনফিগার করা উচিত? সর্বোত্তম পদ্ধতি হলো, API প্রোডাক্টগুলোতে সংজ্ঞায়িত কোটা ইন্টারভ্যালের চেয়ে কম সিঙ্ক ইন্টারভ্যাল দিয়ে Edge Microgateway কনফিগার করা। উদাহরণস্বরূপ:

quotas:
    bufferSize:
      hour: 2000
      minute: 50
      month: 1
      default: 10000

এই কনফিগারেশনটি পূর্বে বর্ণিত এপিআই প্রোডাক্টগুলোর জন্য নিম্নলিখিত সিঙ্ক ব্যবধানগুলো নির্ধারণ করে:

  • প্রোডাক্ট A-কে 'মিনিট' ব্যবধানে সেট করা হয়েছে। Edge Microgateway প্রতি ৫০তম অনুরোধে অথবা ৫ সেকেন্ড পর পর Edge-এর সাথে সিঙ্ক করবে, দুটির মধ্যে যেটি আগে ঘটবে।
  • প্রোডাক্ট B-কে 'ঘণ্টা' ব্যবধানে সেট করা হয়েছে। Edge Microgateway প্রতি ২০০০তম অনুরোধ অথবা ১ মিনিট পর পর Edge-এর সাথে সিঙ্ক করবে, দুটির মধ্যে যেটি আগে ঘটবে।
  • প্রোডাক্ট C-এর জন্য 'মাস' ব্যবধান সেট করা আছে। Edge Microgateway প্রতিটি অনুরোধের পর অথবা ১ মিনিট পর Edge-এর সাথে সিঙ্ক করবে, দুটির মধ্যে যেটি আগে ঘটবে।

প্রতিবার যখন একটি মাইক্রোগেটওয়ে ইনস্ট্যান্স Edge-এর সাথে সিঙ্ক করে, তখন মাইক্রোগেটওয়েটির কোটা সংখ্যা প্রাপ্ত কোটা সংখ্যার সমান করে সেট করা হয়।

bufferSize সেটিংস আপনাকে Edge-এর সাথে কোটা কাউন্টার কীভাবে সিঙ্ক হবে তা সামঞ্জস্য করতে দেয়। বেশি ট্র্যাফিকের পরিস্থিতিতে, bufferSize সেটিংস ডিফল্ট সময়-ভিত্তিক সিঙ্ক চালু হওয়ার আগেই বাফার কাউন্টারকে সিঙ্ক করার সুযোগ দেয়।

কোটার পরিধি বোঝা

কোটার সংখ্যা একটি প্রতিষ্ঠানের অন্তর্গত একটি এনভায়রনমেন্টের জন্য নির্দিষ্ট করা থাকে। এই পরিধি নিশ্চিত করতে, Edge Microgateway একটি কোটা আইডেন্টিফায়ার তৈরি করে যা "org + env + appName + productName"-এর সমন্বয়ে গঠিত।

কোটার জন্য রেডিস ব্যাকস্টোর ব্যবহার করা

কোটার জন্য রেডিস ব্যাকস্টোর ব্যবহার করতে, সিনক্রোনাইজার ফিচারের জন্য ব্যবহৃত একই কনফিগারেশন ব্যবহার করুন। কোটা স্টোরেজের জন্য রেডিস ব্যবহার করতে নিম্নলিখিত মৌলিক কনফিগারেশন প্রয়োজন:

edgemicro:
  redisHost: localhost
  redisPort: 6379
  redisDb: 2
  redisPassword: codemaster

quotas:
  useRedis: true
edgemicro.redis* প্যারামিটারগুলির বিশদ বিবরণের জন্য, সিঙ্ক্রোনাইজার ব্যবহার দেখুন।

কোটা প্লাগইন পরীক্ষা করা হচ্ছে

কোটা অতিক্রম করলে, ক্লায়েন্টকে নিম্নলিখিত বার্তাসহ একটি HTTP 403 স্ট্যাটাস ফেরত পাঠানো হয়:

{"error": "exceeded quota"}

স্পাইক অ্যারেস্ট এবং কোটার মধ্যে পার্থক্য কী?

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

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

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