دسترسی به سرویس سهمیه در Node.js

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

مقدمه

این مبحث نحوه استفاده از apigee-access برای دسترسی به سرویس سهمیه Apigee Edge از یک برنامه Node.js را توضیح می‌دهد. با 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 با این فیلدها است:

  • شناسه (رشته‌ای، الزامی): یک شناسه منحصر به فرد برای سبد سهمیه. در عمل ممکن است شناسه برنامه، آدرس IP یا نام کاربری باشد.
  • timeUnit (رشته‌ای، الزامی): مدت زمانی که سطل سهمیه تا زمان بازنشانی آن انباشته می‌شود. مقادیر معتبر عبارتند از "دقیقه"، "ساعت"، "روز"، "هفته" و "ماه".
  • allow (عدد، الزامی): حداکثر مقدار برای سبد سهمیه. این مقدار با مقدار فعلی ترکیب می‌شود تا مشخص شود که آیا سهمیه‌بندی با موفقیت انجام شده است یا خیر.
  • فاصله (عدد، اختیاری): همراه با "timeUnit" برای تعیین مدت زمان قبل از بازنشانی سهمیه. مقدار پیش‌فرض ۱ است. برای مجاز بودن سهمیه‌هایی مانند "دو ساعت"، "سه هفته" و غیره، مقدار بیشتری را تنظیم کنید.
  • وزن (عدد، اختیاری): مقداری که سهمیه به آن افزایش می‌یابد. پیش‌فرض ۱ است.

(2) آرگومان دوم یک تابع فراخوانی با این دو آرگومان است:

  • اولین آرگومان یک شیء Error است اگر سهمیه قابل افزایش نباشد، یا اگر عملیات موفقیت‌آمیز باشد، تعریف نشده است.
  • مورد دوم یک شیء است که شامل فیلدهای زیر است:
    • used (number): مقدار فعلی سبد سهمیه.
    • مجاز (عدد): حداکثر مقدار ظرف سهمیه قبل از اینکه سهمیه از آن تجاوز شود. همان مقدار به عنوان "allow" در شیء درخواست ارسال شد.
    • isAllowed (منطقی): اگر در سهمیه جایی باقی مانده باشد -- تا زمانی که "used" کمتر یا مساوی "allowed" باشد، مقدار true را برمی‌گرداند.
    • expiryTime (long): مهر زمانی، به میلی‌ثانیه از سال ۱۹۷۰، زمانی که سطل سهمیه بازنشانی می‌شود.
    • timestamp (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 با این فیلدها:
    • شناسه (رشته‌ای، الزامی): یک شناسه منحصر به فرد برای سبد سهمیه. در عمل ممکن است شناسه برنامه، آدرس IP یا نام کاربری باشد.
    • timeUnit (رشته‌ای، الزامی): در صورت تنظیم مجدد، چه مدت زمان، سطل سهمیه انباشته خواهد شد. مقادیر معتبر عبارتند از "دقیقه"، "ساعت"، "روز"، "هفته" و "ماه".
    • فاصله (عدد، اختیاری): همراه با "timeUnit" برای تعیین مدت زمان قبل از بازنشانی سهمیه. مقدار پیش‌فرض ۱ است. برای زمان‌های بازنشانی مانند "دو ساعت"، "سه هفته" و غیره، مقدار بیشتری را تنظیم کنید.
  • یک تابع فراخوانی:
    • در صورت عدم موفقیت در تنظیم مجدد، تابع فراخوانی، یک شیء خطا (Error) را به عنوان اولین پارامتر دریافت می‌کند.

مورد استفاده سهمیه پیشرفته

هنگام ایجاد سهمیه، می‌توانید یک شیء "options" اختیاری اضافه کنید. این شیء یک پارامتر اختیاری دارد:
  • syncInterval (عدد، اختیاری): تعداد ثانیه‌هایی که پیاده‌سازی سهمیه توزیع‌شده، وضعیت خود را در سراسر شبکه همگام‌سازی می‌کند. مقدار پیش‌فرض ۱۰ است.
از این پارامتر برای بهینه‌سازی عملکرد سهمیه توزیع‌شده در سراسر شبکه استفاده کنید. به خاطر داشته باشید که تنظیم کمتر، عملکرد را کاهش داده و تأخیر عملیات "اعمال" را به طرز چشمگیری افزایش می‌دهد. تنظیم پیش‌فرض 10 ثانیه، تنظیم خوبی برای بسیاری از برنامه‌ها است. فاصله زمانی را می‌توان تا صفر تنظیم کرد، به این معنی که هر بار که "اعمال" فراخوانی می‌شود، وضعیت همگام‌سازی می‌شود. در این حالت، عملکرد بسیار بدتر خواهد شد.