Truy cập vào dịch vụ hạn mức trong Node.js

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Giới thiệu

Chủ đề này giải thích cách sử dụng apigee-access để truy cập vào dịch vụ hạn mức Apigee Edge từ một ứng dụng Node.js. Với apigee-access, bạn có thể áp dụngđặt lại giá trị hạn mức.

Ví dụ

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

Phương thức


áp dụng

Sửa đổi các chế độ cài đặt trên đối tượng Hạn mức. Sử dụng phương thức này để tăng hoặc giảm hạn mức, thay đổi khoảng thời gian và thực hiện các cấu hình khác.

Cách sử dụng

var apigee = require('apigee-access');
var quota = apigee.getQuota();
quota.apply({parameters}, callback);

Ví dụ

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

Thông số

Phương thức apply() nhận hai tham số, một đối tượng và một hàm:

(1) Tham số đầu tiên là một đối tượng JSON có các trường sau:

  • identifier (chuỗi, bắt buộc): Giá trị nhận dạng duy nhất của nhóm hạn mức. Trên thực tế, đó có thể là mã ứng dụng, địa chỉ IP hoặc tên người dùng.
  • timeUnit (chuỗi, bắt buộc): Khoảng thời gian mà nhóm hạn mức sẽ tích luỹ cho đến khi được đặt lại. Các giá trị hợp lệ là "phút", "giờ", "ngày", "tuần" và "tháng".
  • allow (số, bắt buộc): Giá trị tối đa cho nhóm hạn mức. Giá trị này sẽ được kết hợp với giá trị hiện tại để trả về việc hạn mức có thành công hay không.
  • interval (số, không bắt buộc): Kết hợp với "timeUnit" để xác định thời gian trước khi hạn mức được đặt lại. Giá trị mặc định là 1. Đặt thành giá trị lớn hơn để cho phép hạn ngạch như "2 giờ", "3 tuần", v.v.
  • weight (số, không bắt buộc): Giá trị để tăng hạn mức. Giá trị mặc định là 1.

(2) Đối số thứ hai là một hàm callback có 2 đối số sau:

  • Đối số đầu tiên là một đối tượng Lỗi nếu không thể tăng hạn mức hoặc không xác định nếu thao tác thành công.
  • Thứ hai là một đối tượng chứa các trường sau:
    • used (số): Giá trị hiện tại của nhóm hạn mức.
    • allowed (số): Giá trị tối đa của bộ chứa hạn mức trước khi hạn mức được coi là vượt quá. Giá trị tương tự đã được truyền dưới dạng "allow" trong đối tượng yêu cầu.
    • isAllowed (boolean): Nếu vẫn còn hạn mức – đúng miễn là "đã sử dụng" nhỏ hơn hoặc bằng "được phép".
    • expiryTime (dài): Dấu thời gian (tính bằng mili giây kể từ năm 1970) khi nhóm hạn mức sẽ được đặt lại.
    • timestamp (long): Dấu thời gian mà hạn mức được cập nhật.

Ví dụ

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

đặt lại

Để đặt lại hạn mức về 0, hãy gọi quota.reset(). Phương thức này có 2 tham số:
  • Đối tượng JSON có các trường sau:
    • identifier (chuỗi, bắt buộc): Giá trị nhận dạng duy nhất của nhóm hạn mức. Trên thực tế, đó có thể là mã ứng dụng, địa chỉ IP hoặc tên người dùng.
    • timeUnit (chuỗi, bắt buộc): Khoảng thời gian mà nhóm hạn mức sẽ tích luỹ cho đến khi được đặt lại. Các giá trị hợp lệ là "phút", "giờ", "ngày", "tuần" và "tháng".
    • interval (số, không bắt buộc): Kết hợp với "timeUnit" để xác định khoảng thời gian trước khi hạn mức được đặt lại. Giá trị mặc định là 1. Đặt thành một giá trị lớn hơn để cho phép đặt lại các lần như "2 giờ", "3 tuần", v.v.
  • Hàm callback:
    • Lệnh gọi lại sẽ lấy một đối tượng Lỗi làm tham số đầu tiên nếu quá trình đặt lại không thành công.

Trường hợp sử dụng hạn mức nâng cao

Khi tạo hạn mức, bạn có thể thêm một đối tượng "options" (không bắt buộc). Đối tượng này có một tham số không bắt buộc:
  • syncInterval (số, không bắt buộc): Số giây mà quá trình triển khai hạn mức phân tán đồng bộ hoá trạng thái của nó trên mạng. Giá trị mặc định là 10.
Sử dụng thông số này để tối ưu hoá hiệu suất của hạn mức được phân phối trên toàn mạng. Hãy nhớ rằng chế độ cài đặt thấp hơn sẽ làm giảm hiệu suất và tăng đáng kể độ trễ của thao tác "áp dụng". Chế độ cài đặt mặc định là 10 giây là một chế độ cài đặt phù hợp với nhiều ứng dụng. Khoảng thời gian có thể được đặt ở mức thấp nhất là 0, tức là trạng thái được đồng bộ hoá mỗi khi "apply" được gọi. Hiệu suất sẽ giảm đáng kể trong trường hợp này.