אתם צופים במסמכי העזרה של 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.