คุณกำลังดูเอกสารประกอบของ 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() ใช้พารามิเตอร์ 2 รายการ ได้แก่ ออบเจ็กต์และฟังก์ชัน
(1) พารามิเตอร์แรกคือออบเจ็กต์ JSON ที่มีช่องต่อไปนี้
- identifier (สตริง, ต้องระบุ): ตัวระบุที่ไม่ซ้ำกัน ของบัคเก็ตโควต้า ในทางปฏิบัติอาจเป็นรหัสแอปพลิเคชัน, ที่อยู่ IP หรือ ชื่อผู้ใช้
- timeUnit (สตริง, ต้องระบุ): ระยะเวลาที่บัคเก็ตโควต้าจะสะสมจนกว่าจะรีเซ็ต ค่าที่ใช้ได้คือ "minute", "hour", "day", "week" และ "month"
- allow (ตัวเลข, ต้องระบุ): ค่าสูงสุดสำหรับ บัคเก็ตโควต้า ค่านี้จะรวมกับค่าปัจจุบันเพื่อแสดงผลว่า โควต้าสำเร็จหรือไม่
- interval (ตัวเลข, ไม่บังคับ): รวมกับ "timeUnit" เพื่อกำหนดระยะเวลาก่อนที่จะรีเซ็ตโควต้า ค่าเริ่มต้นคือ 1 ตั้งค่าเป็นค่าที่มากขึ้น เพื่ออนุญาตโควต้า เช่น "2 ชั่วโมง" "3 สัปดาห์" และอื่นๆ
- weight (ตัวเลข, ไม่บังคับ): ค่าที่จะ เพิ่มโควต้า ค่าเริ่มต้นคือ 1
(2) อาร์กิวเมนต์ที่ 2 คือฟังก์ชัน Callback ที่มีอาร์กิวเมนต์ 2 รายการต่อไปนี้
- อาร์กิวเมนต์แรกคือออบเจ็กต์ Error หากเพิ่มโควต้าไม่ได้ หรือ undefined หากการดำเนินการสำเร็จ
- อาร์กิวเมนต์ที่ 2 คือออบเจ็กต์ที่มีช่องต่อไปนี้
- used (ตัวเลข): ค่าปัจจุบันของ บัคเก็ตโควต้า
- allowed (ตัวเลข): ค่าสูงสุดของบัคเก็ตโควต้าก่อนที่จะถือว่าโควต้าเกิน ค่าเดียวกันนี้ถูกส่งผ่านเป็น "allow" ในออบเจ็กต์คำขอ
- isAllowed (บูลีน): หากยังมีพื้นที่เหลือ ในโควต้า ให้แสดงค่าเป็น "จริง" ตราบใดที่ "used" น้อยกว่าหรือเท่ากับ "allowed"
- expiryTime (ยาว): การประทับเวลาเป็น มิลลิวินาทีนับตั้งแต่รูปแบบปี 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'); } }
reset
หากต้องการรีเซ็ตโควต้าเป็น 0 ให้เรียกใช้ quota.reset() เมธอดนี้ใช้พารามิเตอร์ 2 รายการ:-
ออบเจ็กต์ JSON ที่มีช่องต่อไปนี้
- identifier (สตริง, ต้องระบุ): ตัวระบุที่ไม่ซ้ำกันของบัคเก็ตโควต้า ในทางปฏิบัติอาจเป็นรหัสแอปพลิเคชัน, ที่อยู่ IP หรือชื่อผู้ใช้
- timeUnit (สตริง, ต้องระบุ): ระยะเวลาที่บัคเก็ตโควต้าจะสะสม จนกว่าจะรีเซ็ต ค่าที่ใช้ได้คือ "minute", "hour", "day", "week" และ "month"
- interval (ตัวเลข, ไม่บังคับ): รวมกับ "timeUnit" เพื่อกำหนด ระยะเวลาก่อนที่จะรีเซ็ตโควต้า ค่าเริ่มต้นคือ 1 ตั้งค่าเป็นค่าที่มากขึ้นเพื่ออนุญาตเวลารีเซ็ต เช่น "2 ชั่วโมง" "3 สัปดาห์" และอื่นๆ
-
ฟังก์ชัน Callback
- Callback จะใช้ออบเจ็กต์ Error เป็นพารามิเตอร์แรกหากการรีเซ็ตล้มเหลว
กรณีการใช้งานโควต้าขั้นสูง
เมื่อสร้างโควต้า คุณสามารถรวม ออบเจ็กต์ "options" ที่ไม่บังคับได้ ออบเจ็กต์นี้มีพารามิเตอร์ที่ไม่บังคับ 1 รายการ ดังนี้- syncInterval (ตัวเลข, ไม่บังคับ): จำนวนวินาทีที่ การติดตั้งใช้งานโควต้าแบบกระจายจะซิงค์สถานะในเครือข่าย ค่าเริ่มต้นคือ 10