আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
ভূমিকা
এই টপিকে ব্যাখ্যা করা হয়েছে কিভাবে একটি Node.js অ্যাপ্লিকেশন থেকে Apigee Edge কোটা সার্ভিস অ্যাক্সেস করার জন্য apigee-access ব্যবহার করতে হয়। apigee-access এর মাধ্যমে আপনি কোটার মান প্রয়োগ এবং রিসেট করতে পারবেন।
উদাহরণ
var apigee = require('apigee-access'); var quota = apigee.getQuota(); quota.apply({ identifier: 'Foo', allow: 10, timeUnit: 'hour' }, function(err, result) { console.log('Quota applied: %j', result); });
পদ্ধতি
প্রয়োগ করুন
কোটা অবজেক্টের সেটিংস পরিবর্তন করে। কোটা বাড়াতে বা কমাতে, সময়সীমা পরিবর্তন করতে এবং অন্যান্য কনফিগারেশন করতে এই মেথডটি ব্যবহার করুন।
ব্যবহার
var apigee = require('apigee-access'); var quota = apigee.getQuota(); quota.apply({parameters}, callback);
উদাহরণ
var apigee = require('apigee-access'); var quota = apigee.getQuota(); // Apply a quota of 100 requests per hour quota.apply({ identifier: 'Foo', timeUnit: 'hour', allow: 100 }, quotaResult); function quotaResult(err, r) { if (err) { console.error('Quota failed'); } }
প্যারামিটার
apply() মেথডটি দুটি প্যারামিটার গ্রহণ করে, একটি অবজেক্ট এবং একটি ফাংশন:
(1) প্রথম প্যারামিটারটি একটি JSON অবজেক্ট যার মধ্যে এই ক্ষেত্রগুলি রয়েছে:
- আইডেন্টিফায়ার (স্ট্রিং, আবশ্যক): কোটা বাকেটের একটি অনন্য শনাক্তকারী। বাস্তবে এটি একটি অ্যাপ্লিকেশন আইডি, আইপি অ্যাড্রেস বা ইউজারনেম হতে পারে।
- timeUnit (স্ট্রিং, আবশ্যক): কতক্ষণ পর কোটা বাকেটটি রিসেট হবে। বৈধ মানগুলো হলো 'মিনিট', 'ঘণ্টা', 'দিন', 'সপ্তাহ' এবং 'মাস'।
- অনুমতি (সংখ্যা, আবশ্যক): কোটা বাকেটের জন্য সর্বোচ্চ মান। কোটা সফল হয়েছে কিনা তা জানানোর জন্য এই মানটি বর্তমান মানের সাথে একত্রিত করা হবে।
- ব্যবধান (সংখ্যা, ঐচ্ছিক): কোটা রিসেট হওয়ার আগে কতক্ষণ সময় লাগবে তা নির্ধারণ করতে 'timeUnit'-এর সাথে এটি ব্যবহৃত হয়। ডিফল্ট মান হলো ১। 'দুই ঘণ্টা', 'তিন সপ্তাহ' ইত্যাদির মতো কোটা চালু করার জন্য এটিকে একটি বৃহত্তর মানে সেট করুন।
- ওজন (সংখ্যা, ঐচ্ছিক): যে মান দ্বারা কোটা বৃদ্ধি করা হবে। ডিফল্ট মান হলো ১।
(2) দ্বিতীয় আর্গুমেন্টটি হল একটি কলব্যাক ফাংশন যার এই দুটি আর্গুমেন্ট রয়েছে:
- যদি কোটা বৃদ্ধি করা না যায়, তবে প্রথম আর্গুমেন্টটি একটি Error অবজেক্ট হবে, অথবা অপারেশনটি সফল হলে তা undefined হবে।
- দ্বিতীয়টি হলো এমন একটি অবজেক্ট যাতে নিম্নলিখিত ফিল্ডগুলো রয়েছে:
- ব্যবহৃত (সংখ্যা): কোটা বাকেটের বর্তমান মান।
- অনুমোদিত (সংখ্যা): কোটা বাকেটের সর্বোচ্চ মান, যার পরে কোটা অতিক্রম করেছে বলে গণ্য করা হয়। এই একই মান রিকোয়েস্ট অবজেক্টে "allow" হিসেবে পাস করা হয়েছিল।
- isAllowed (বুলিয়ান): কোটায় জায়গা অবশিষ্ট থাকলে — যতক্ষণ "ব্যবহৃত" "অনুমোদিত"-এর চেয়ে কম বা সমান থাকে, ততক্ষণ এটি সত্য হবে।
- expiryTime (long): ১৯৭০ সাল থেকে মিলিসেকেন্ড ফরম্যাটে সেই টাইমস্ট্যাম্প, যখন কোটা বাকেটটি রিসেট করা হবে।
- টাইমস্ট্যাম্প (পূর্ণদৈর্ঘ্য): যে টাইমস্ট্যাম্পে কোটা আপডেট করা হয়েছিল।
উদাহরণ
var apigee = require('apigee-access'); var quota = apigee.getQuota(); // Apply a quota of 100 requests per hour quota.apply({ identifier: 'Foo', timeUnit: 'hour', allow: 100 }, quotaResult); // Apply a quota of 500 requests per five minutes quota.apply({ identifier: 'Bar', timeUnit: 'minute', interval: 5, allow: 500 }, quotaResult); // Increment the quota by a value of 10 quota.apply({ identifier: 'Foo', timeUnit: 'hour', allow: 100, weight: 10 }, quotaResult); function quotaResult(err, r) { if (err) { console.error('Quota failed'); } }
রিসেট
কোটা শূন্যতে রিসেট করতে quota.reset() কল করুন। এই মেথডটি দুটি প্যারামিটার গ্রহণ করে:- এই ফিল্ডগুলো সহ একটি JSON অবজেক্ট:
- আইডেন্টিফায়ার (স্ট্রিং, আবশ্যক): কোটা বাকেটের একটি অনন্য শনাক্তকারী। বাস্তবে এটি একটি অ্যাপ্লিকেশন আইডি, আইপি অ্যাড্রেস বা ইউজারনেম হতে পারে।
- timeUnit (স্ট্রিং, আবশ্যক): কোটা বাকেট রিসেট করা হলে কতক্ষণ পর্যন্ত জমা হবে। বৈধ মানগুলো হলো 'মিনিট', 'ঘণ্টা', 'দিন', 'সপ্তাহ' এবং 'মাস'।
- ব্যবধান (সংখ্যা, ঐচ্ছিক): কোটা রিসেট হওয়ার আগে কতক্ষণ সময় থাকবে তা নির্ধারণ করতে 'timeUnit'-এর সাথে এটি ব্যবহৃত হয়। ডিফল্ট মান হলো ১। 'দুই ঘণ্টা', 'তিন সপ্তাহ' ইত্যাদির মতো রিসেট সময় নির্ধারণের জন্য এটিকে একটি বৃহত্তর মানে সেট করুন।
- একটি কলব্যাক ফাংশন:
- রিসেট ব্যর্থ হলে কলব্যাকটি প্রথম প্যারামিটার হিসেবে একটি Error অবজেক্ট গ্রহণ করে।
উন্নত কোটা ব্যবহারের ক্ষেত্র
কোটা তৈরি করার সময়, আপনি একটি ঐচ্ছিক "options" অবজেক্ট অন্তর্ভুক্ত করতে পারেন। এই অবজেক্টটির একটি ঐচ্ছিক প্যারামিটার রয়েছে:- syncInterval (সংখ্যা, ঐচ্ছিক): এই সেকেন্ডের সংখ্যা, যা ধরে ডিস্ট্রিবিউটেড কোটা ইমপ্লিমেন্টেশনটি নেটওয়ার্ক জুড়ে তার স্টেট সিঙ্ক করে। ডিফল্ট মান হলো ১০।