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

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

מבוא

בנושא הזה מוסבר איך להשתמש ב-apigee-access כדי לגשת למכסה של Apigee Edge שירות מאפליקציית Node.js. עם גישת apigee אפשר להגיש בקשה וגם לאפס את ערכי המכסה.

דוגמה

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);
    });

שיטות


אישור

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

שימוש

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 (מחרוזת, חובה): כמה זמן מכסה יצטברו עד שהקטגוריה תאופס. הערכים החוקיים הם 'minute', "hour," "יום", "week", וגם "month"
  • allow (מספר, חובה): הערך המקסימלי עבור את קטגוריית המכסה. הערך הזה ישולב עם הערך הנוכחי כדי להחזיר בין אם הגעת למכסה.
  • interval (מספר, אופציונלי): בשילוב עם הפונקציה 'timeUnit' כדי לבדוק כמה זמן לפני שהמכסה תתאפס. ערך ברירת המחדל הוא 1. הגדרה לערך גדול יותר כדי לאפשר מכסות כמו "שעתיים", "Three weeks", וכן הלאה.
  • weight (מספר, אופציונלי): הערך של הפרמטר להגדיל את המכסה ב-. ברירת המחדל היא 1.

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

  • הארגומנט הראשון הוא אובייקט Error אם המכסה לא יכולה תחודש או לא מוגדרת אם הפעולה הצליחה.
  • האובייקט השני הוא אובייקט שמכיל את השדות הבאים:
    • used (מספר): הערך הנוכחי של בקטגוריית מכסה.
    • allowed (מספר): הערך המקסימלי של לפני שהמכסה נחשבת כחריגה. אותו ערך הועבר כמו 'allow' באובייקט הבקשה.
    • isAllowed (בוליאני): אם נשאר מקום במכסה – נכון כל עוד "used" פחות מ-"מותר" או שווה לו.
    • expiryTime (long): חותמת הזמן, in באלפיות השנייה מאז פורמט 1970, שבו קטגוריית המכסה תאופס.
    • timestamp (אורך): חותמת הזמן שבה המכסה עודכנה.

דוגמה

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'); }
}

איפוס

כדי לאפס את המכסה, קוראים לפונקציה cases.reset(). השיטה הזו כוללת שני פרמטרים:
  • אובייקט JSON עם השדות הבאים:
    • identifier (מחרוזת, חובה): מזהה ייחודי של המכסה בקטגוריה שלכם. בפועל, המזהה יכול להיות מזהה אפליקציה, כתובת IP או שם משתמש.
    • timeUnit (מחרוזת, חובה): משך הזמן שקטגוריית המכסה תצבור עד שהוא יאופס. הערכים החוקיים הם 'minute', "hour," "יום", "week", ו'חודש'.
    • interval (מספר, אופציונלי): בשילוב עם 'timeUnit' כדי לקבוע כמה זמן לפני שהמכסה תתאפס. ערך ברירת המחדל הוא 1. צריך להגדיר ערך גדול יותר כדי לאפשר איפוס למשל "שעתיים", "Three weeks", וכן הלאה.
  • פונקציית קריאה חוזרת:
    • הקריאה החוזרת מקבלת את אובייקט Error כפרמטר הראשון אם האיפוס נכשל.

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

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