אתם צופים במסמכי התיעוד של 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); });
Methods
החלת
משנה את ההגדרות באובייקט של מכסת נפח. אפשר להשתמש בשיטה הזו כדי להגדיל או להקטין את המכסה, לשנות את מרווחי הזמן ולבצע הגדרות אחרות.
שימוש
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, day, week ו-month.
- allow (מספר, חובה): הערך המקסימלי של מכסת השימוש. הערך הזה ישולב עם הערך הנוכחי כדי להחזיר את התוצאה של בדיקת המכסה.
- interval (מספר, אופציונלי): בשילוב עם timeUnit, הפרמטר הזה קובע כמה זמן לפני איפוס המכסה. ערך ברירת המחדל הוא 1. כדי לאפשר מכסות כמו 'שעתיים', 'שלושה שבועות' וכו', צריך להגדיר ערך גדול יותר.
- weight (מספר, אופציונלי): הערך שלפיו המכסה תוגדל. ברירת המחדל היא 1.
(2) הארגומנט השני הוא פונקציית קריאה חוזרת עם שני הארגומנטים הבאים:
- הארגומנט הראשון הוא אובייקט שגיאה אם אי אפשר להגדיל את המכסה, או undefined אם הפעולה הצליחה.
- השני הוא אובייקט שמכיל את השדות הבאים:
- used (מספר): הערך הנוכחי של מכסת השימוש.
- allowed (מספר): הערך המקסימלי של מכסת השימוש לפני שייחשב שחרגתם מהמכסה. אותו ערך הועבר כ-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 (מחרוזת, חובה): משך הזמן שיידרש עד לאיפוס של מכסת האחסון. הערכים התקינים הם 'minute', 'hour', 'day', 'week' ו-'month'.
- interval (מספר, אופציונלי): בשילוב עם timeUnit, הפרמטר הזה קובע כמה זמן לפני איפוס המכסה. ערך ברירת המחדל הוא 1. כדי לאפשר זמני איפוס כמו 'שעתיים', 'שלושה שבועות' וכו', צריך להגדיר ערך גדול יותר.
-
פונקציית קריאה חוזרת:
- אם האיפוס נכשל, הקריאה החוזרת מקבלת אובייקט שגיאה כפרמטר הראשון.
תרחיש מתקדם לדוגמה לשימוש במכסה
כשיוצרים מכסת נפח, אפשר לכלול אובייקט אופציונלי של 'אפשרויות'. לאובייקט הזה יש פרמטר אופציונלי אחד:- syncInterval (מספר, אופציונלי): מספר השניות שנדרשות כדי שהטמעה של מכסת שימוש מבוזרת תסנכרן את הסטטוס שלה ברשת. ערך ברירת המחדל הוא 10.