دسترسی به سرویس سهمیه در 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() دو پارامتر می‌گیرد، یک شیء و یک تابع:

(۱) پارامتر اول یک شیء JSON با این فیلدها است:

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

(۲) متغیر مستقل دوم تابع فراخوانی متقابل با این دو متغیر مستقل است: متغیر مستقل:

  • اولین آرگومان یک شیء «خطا» است اگر سهمیه قابل افزایش نباشد، یا تعریف‌نشده است اگر عملیات موفقیت‌آمیز باشد.
  • دومی شیئی است که حاوی فیلدهای زیر است:
    • استفاده‌شده (عدد): مقدار کنونی سبد سهمیه.
    • مجاز (عدد): حداکثر مقدار سبد سهمیه قبل‌از اینکه سهمیه به‌عنوان فراتر از حد مجاز درنظر گرفته شود. همین مقدار به‌عنوان «اجازه دادن» در شیء درخواست ارسال شده است.
    • isAllowed (بولی): اگر در سهمیه فضا باقی مانده باشد -- تا زمانی‌که «استفاده‌شده» کمتر یا مساوی «مجاز» باشد درست است.
    • expiryTime (بلند): مُهر زمان، در قالب میلی‌ثانیه از سال ۱۹۷۰، که در آن سطل سهمیه بازنشانی خواهد شد.
    • 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 (رشته، الزامی): مدت زمانی که سطل سهمیه انباشته می‌شود تا درصورت بازنشانی شدن، دوباره شروع شود. مقادیر معتبر عبارت‌اند از «دقیقه»، «ساعت»، «روز»، «هفته»، و «ماه».
    • فاصله (عدد، اختیاری): با «واحد زمان» ترکیب می‌شود تا مشخص کند چه مدت قبل‌از بازنشانی سهمیه. پیش‌فرض ۱ است. برای اینکه زمان‌های بازنشانی مثل «دو ساعت»، «سه هفته»، و غیره مجاز شود، مقدار بزرگ‌تری تنظیم کنید.
  • تابع بازخوانی:
    • اگر بازنشانی ناموفق باشد، برگشت تماس یک شیء «خطا» را به‌عنوان پارامتر اول می‌گیرد.

کاربرد سهمیه پیشرفته

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