আপনার API এ স্পাইক অ্যারেস্ট নীতি যোগ করুন

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

আপনি যা শিখবেন

এই টিউটোরিয়ালের মাধ্যমে আপনি শিখবেন:

  • এমন একটি নীতি যোগ করুন যা অনুরোধ এবং প্রতিক্রিয়াকে প্রভাবিত করে।
  • নীতিমালার প্রভাবগুলো দেখুন।

আপনার যা যা লাগবে

  • আপনার প্রক্সিতে অন্তত একটি পলিসি থাকতে হবে (এটি 'গেট স্টার্টেড' টিউটোরিয়ালেরও একটি অংশ)।
  • কমান্ড লাইন থেকে এপিআই কল করার জন্য আপনার মেশিনে curl ইনস্টল করা আছে।

স্পাইক অ্যারেস্ট নীতি যোগ করুন

এই টিউটোরিয়ালে, আপনি টার্গেট সার্ভিসকে হঠাৎ ট্র্যাফিক স্পাইক থেকে রক্ষা করার জন্য SpikeArrest পলিসি যোগ এবং কনফিগার করবেন, যা ব্যবহার বৃদ্ধি, ত্রুটিপূর্ণ ক্লায়েন্ট বা ক্ষতিকারক আক্রমণের কারণে হতে পারে। যখন অনুরোধের সংখ্যা রেট লিমিট অতিক্রম করে, তখন API অনুরোধটির জন্য একটি HTTP 500 ত্রুটি ফেরত দেয়।

একটি API প্রক্সিতে স্পাইক অ্যারেস্ট পলিসি যোগ করুন:

  1. apigee.com/edge- এ সাইন ইন করুন।
  2. বাম দিকের নেভিগেশন বার থেকে Develop > API Proxys নির্বাচন করুন।
  3. যে এপিআই প্রক্সিতে আপনি স্পাইক অ্যারেস্ট পলিসি যোগ করতে চান, সেটি নির্বাচন করুন।

    আপনি যদি 'Get Started' টিউটোরিয়ালটি অনুসরণ করে থাকেন, তাহলে 'Create an API proxy'- তে তৈরি করা 'getstarted' প্রক্সিতে এটি যোগ করতে পারেন।

  4. নতুন এপিআই প্রক্সির এডিটরে, ডেভেলপ ট্যাবে ক্লিক করুন:

    এপিআই প্রক্সি এডিটর আপনাকে আপনার এপিআই প্রক্সির কাঠামো দেখতে এবং এর কার্যপ্রবাহ কনফিগার করতে দেয়। এই এডিটরটি আপনার প্রক্সির অনুরোধ ও প্রতিক্রিয়া বার্তা প্রবাহের একটি দৃশ্যমান উপস্থাপনার পাশাপাশি প্রক্সিটিকে সংজ্ঞায়িতকারী অন্তর্নিহিত XML-এর একটি সম্পাদনাযোগ্য প্রদর্শনও করে।

  5. বাম দিকের নেভিগেটর প্যানে, Proxy Endpoints > default-এর অধীনে থাকা PreFlow- তে ক্লিক করুন। (অন্যান্য টিউটোরিয়ালে ফ্লো- এর ধারণাটি আলোচনা করা হবে।)
  6. রিকোয়েস্ট প্রিফ্লো-এর সাথে সম্পর্কিত উপরের +স্টেপ বোতামটিতে ক্লিক করুন। এটি আপনার তৈরি করতে পারেন এমন সমস্ত পলিসির একটি শ্রেণীবদ্ধ তালিকা প্রদর্শন করবে।

    অনুরোধ প্রিফ্লো-তে ধাপে ক্লিক করুন

  7. ট্র্যাফিক ম্যানেজমেন্ট ক্যাটাগরিতে স্পাইক অ্যারেস্ট নির্বাচন করুন। নতুন পলিসি ডায়ালগ বক্সটি প্রদর্শিত হবে:

    স্পাইক অ্যারেস্ট নীতি তৈরি করুন

  8. ডিফল্ট নামগুলো অপরিবর্তিত রেখে 'Add'-এ ক্লিক করুন। নতুন পলিসিটি একটি রিকোয়েস্টের PreFlow ফ্লো-এর সাথে সংযুক্ত হয়ে যাবে।
  9. নেভিগেটরে, নিশ্চিত করুন যে প্রক্সি এন্ডপয়েন্টস > ডিফল্ট-এর অধীনে প্রিফ্লো এখনও নির্বাচিত আছে এবং এপিআই প্রক্সি এডিটরে নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:
    • এপিআই প্রক্সি এডিটরের বাম দিকে অবস্থিত নেভিগেটরের পলিসিস (Policies) অংশে নতুন স্পাইক অ্যারেস্ট-১ (Spike Arrest-1) পলিসিটি যোগ করা হয়েছে।
    • এপিআই প্রক্সি এডিটরের ডিজাইনার ভিউয়ের উপরের কেন্দ্রে স্পাইক অ্যারেস্ট-১ আইকনটি যোগ করা হয়, যা আপনার প্রক্সির মেসেজ ফ্লো-এর একটি ভিজ্যুয়াল উপস্থাপনা।
    • পলিসির জন্য XML ফাইলটি API প্রক্সি এডিটরের নিচের মাঝখানে থাকা কোড ভিউতে প্রদর্শিত হয়।

    স্পাইক অ্যারেস্ট নীতি সহ প্রিফ্লো দেখুন

  10. নেভিগেটরে, পলিসি-এর অধীনে স্পাইক অ্যারেস্ট-১ নির্বাচন করুন এবং এপিআই প্রক্সি এডিটর-এ নিম্নলিখিত বিষয়গুলো নোট করুন:
    • এপিআই প্রক্সি এডিটরের উপরের মাঝখানে ডিজাইনার ভিউতে পলিসির বিস্তারিত বিবরণ প্রদর্শিত হয়।
    • পলিসির জন্য XML ফাইলটি API প্রক্সি এডিটরের নিচের মাঝখানে থাকা কোড ভিউতে প্রদর্শিত হয়।
    • এপিআই প্রক্সি এডিটরের ডানদিকে অবস্থিত প্রপার্টি ইন্সপেক্টরে পলিসিটির এক্সএমএল এলিমেন্ট এবং অ্যাট্রিবিউটের মানগুলো প্রদর্শিত হয়।

  11. পলিসির XML ফাইলে, <Rate> এলিমেন্টের মান পরিবর্তন করে 1pm করুন (যার অর্থ ক্লাউডে প্রতি ৬০ সেকেন্ডে প্রায় ২টি অনুরোধ অনুমোদিত হবে)।

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

    লক্ষ্য করুন যে প্রপার্টি ইন্সপেক্টরে Rate ) ভ্যালুটিও "1pm"-এ পরিবর্তিত হয়। বিকল্পভাবে, আপনি প্রপার্টি ইন্সপেক্টরে রেট ভ্যালুটি পরিবর্তন করতে পারেন এবং এটি এক্সএমএল (XML) ভিউতে প্রতিফলিত হবে।

  12. আপনার পরিবর্তনসহ বর্তমান সংস্করণটি সংরক্ষণ করতে সেভ-এ ক্লিক করুন।
  13. org_name জায়গায় আপনার Apigee অর্গানাইজেশনের নাম বসিয়ে curl ব্যবহার করে API-টি কল করুন:

    curl "http://org_name-test.apigee.net/getstarted"

    উদাহরণস্বরূপ:

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    নিশ্চিত করুন যে অনুরোধটি সফল হয়েছে এবং আপনি আগের মতোই একই XML প্রতিক্রিয়া দেখতে পাচ্ছেন। (আপনি একটি ওয়েব ব্রাউজারে শুধু URL-টিও প্রবেশ করাতে পারেন।)

  14. এক মিনিটের মধ্যে আরও দুই বা তিনবার curl কমান্ডটি চালান (অথবা ব্রাউজার উইন্ডো রিফ্রেশ করুন), এবং লক্ষ্য করুন যে আপনি পলিসির রেট লিমিট অতিক্রম করার কারণে নিম্নলিখিত বার্তাটি পাচ্ছেন:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    যদি আপনি এক মিনিটের মধ্যে আরও কল করার চেষ্টা করেন, তাহলে আপনি ত্রুটির বার্তাটি পেতে থাকবেন।

  15. আপনার পলিসি সম্পাদনা করে < Rate> সীমা ১৫ মিনিটে সেট করুন (যার অর্থ ক্লাউডে প্রতি ৪ সেকেন্ডে প্রায় ২টি কল করার অনুমতি), এবং তারপর এপিআই প্রক্সিটি সেভ করুন।
  16. curl কমান্ডটি চালান অথবা বারবার ব্রাউজার রিফ্রেশ করুন ( curl দ্রুততর)। লক্ষ্য করুন যে, যদি আপনি ৪-সেকেন্ডের ব্যবধানে একটি বা দুটি কল করেন, তবে আপনার কলগুলো সফল হবে। যদি আপনি দ্রুত কল করেন, অর্থাৎ ৪ সেকেন্ডের মধ্যে দুইটির বেশি, তাহলে আপনার ত্রুটি বার্তা পাওয়ার কথা। কিন্তু প্রতি ৪-সেকেন্ডের ব্যবধানের পর আপনি আবার কল করা চালিয়ে যেতে পারবেন, যেখানে (দুপুর ১টার সেটিং-এর ক্ষেত্রে) আপনাকে পুরো এক মিনিটের জন্য ব্লক করে রাখা হয় না।