גישה לשירות המכסות ב-Node.js

אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X.
info

מבוא

כאן מוסבר איך להשתמש ב-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);
    });

שיטות


apply

שינוי ההגדרות של אובייקט מכסה. אפשר להשתמש בשיטה הזו כדי להגדיל או להקטין את המכסה, לשנות את מרווחי הזמן ולבצע הגדרות אחרות.

שימוש

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 עם השדות הבאים:

  • identifier (מחרוזת, חובה): מזהה ייחודי של הקטגוריה של המכסה. בפועל, זה יכול להיות מזהה אפליקציה, כתובת IP או שם משתמש.
  • timeUnit (מחרוזת, חובה): כמה זמן תצטבר קטגוריית המכסה עד שהיא תאופס. הערכים החוקיים הם 'דקות', 'שעה', 'יום', 'שבוע' ו'חודש'.
  • allow (מספר, חובה): הערך המקסימלי של הקטגוריה של המכסה. הערך הזה ישולב עם הערך הנוכחי כדי להחזיר את הערך שמציין אם המכסה הושלמה.
  • interval (מספר, אופציונלי): בשילוב עם 'timeUnit', כדי לקבוע כמה זמן לפני האיפוס של המכסה. ערך ברירת המחדל הוא 1. אפשר להגדיר ערך גדול יותר כדי לאפשר מכסות כמו 'שעתיים', 'שלושה שבועות' וכו'.
  • weight (מספר, אופציונלי): הערך שבו מגדילים את המכסה. ברירת המחדל היא 1.

(2) הארגומנט השני הוא פונקציית קריאה חוזרת עם שני הארגומנטים הבאים:

  • הארגומנט הראשון הוא אובייקט Error אם לא ניתן להגדיל את המכסה, או לא מוגדר אם הפעולה הצליחה.
  • השני הוא אובייקט שמכיל את השדות הבאים:
    • used (מספר): הערך הנוכחי של הקטגוריה של המכסה.
    • allowed (number): הערך המקסימלי של קטגוריית המכסה לפני החריגה מהמכסה. אותו ערך הועבר בתור "allow" באובייקט הבקשה.
    • isAllowed (בוליאני): אם יש עוד מקום במכסה, הערך יהיה True כל עוד הערך של 'used' קטן או שווה לערך של 'allowed'.
    • expiryTime (long): חותמת הזמן, בפורמט של מיליוניות שנייה מ-1970, שבה הקטגוריה של המכסה תתאפס.
    • 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 עם השדות הבאים:
    • identifier (מחרוזת, חובה): מזהה ייחודי של הקטגוריה של המכסה. בפועל, זה יכול להיות מזהה אפליקציה, כתובת IP או שם משתמש.
    • timeUnit (מחרוזת, חובה): משך הזמן שבו הבקשות יצברו בקטגוריית המכסה עד שהיא תתאפס. הערכים החוקיים הם 'דקות', 'שעה', 'יום', 'שבוע' ו'חודש'.
    • interval (מספר, אופציונלי): בשילוב עם 'timeUnit', הערך הזה קובע כמה זמן יחלוף לפני שהמכסה תתאפס. ערך ברירת המחדל הוא 1. צריך להגדיר ערך גדול יותר כדי לאפשר זמני איפוס, כמו 'שעתיים', 'שלושה שבועות' וכן הלאה.
  • פונקציית קריאה חוזרת:
    • אם האיפוס נכשל, פונקציית הקריאה החוזרת מקבלת אובייקט Error בתור הפרמטר הראשון.

תרחיש לדוגמה לשימוש במכסות מתקדמות

כשיוצרים מכסה, אפשר לכלול אובייקט 'options' (אופציונלי). לאובייקט הזה יש פרמטר אופציונלי אחד:
  • syncInterval (מספר, אופציונלי): מספר השניות שבהן מתבצע סנכרון המצב של הטמעת המכסה המפוזרת ברשת. ערך ברירת המחדל הוא 10.
אפשר להשתמש בפרמטר הזה כדי לבצע אופטימיזציה של הביצועים של המכסה המחולקת ברשת. חשוב חשוב לזכור שהגדרה נמוכה יותר תפגע בביצועים ותאריך באופן משמעותי את זמן האחזור של הפעולה 'אישור'. הגדרת ברירת המחדל של 10 שניות מתאימה לאפליקציות רבות. אפשר להגדיר את המרווח ל-0, כלומר שהמצב מסתנכרן בכל פעם שמפעילים את apply. במקרה כזה הביצועים יהיו הרבה יותר פחות טובים.