การเข้าถึงบริการโควต้าใน 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() ใช้พารามิเตอร์ 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
ใช้พารามิเตอร์นี้เพื่อเพิ่มประสิทธิภาพของโควต้าแบบกระจายในเครือข่าย โปรดทราบว่าการตั้งค่าที่ต่ำลงจะลดประสิทธิภาพและเพิ่มเวลาในการตอบสนองของการดำเนินการ "apply" อย่างมาก การตั้งค่าเริ่มต้นที่ 10 วินาทีเป็นการตั้งค่าที่ดีสำหรับแอปพลิเคชันจำนวนมาก คุณตั้งค่าช่วงเวลาเป็น 0 ได้ ซึ่งหมายความว่าระบบจะซิงโครไนซ์สถานะทุกครั้งที่เรียกใช้ "apply" ในกรณีนี้ประสิทธิภาพจะแย่ลงมาก