Node.js에서 할당량 서비스에 액세스

Apigee Edge 문서입니다.
Apigee X 문서로 이동하세요.
정보

소개

이 주제에서는 apigee-access를 사용하여 Node.js 애플리케이션에서 Apigee Edge 할당량 서비스에 액세스하는 방법을 설명합니다. 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 객체입니다.

  • 식별자 (문자열, 필수): 할당량 버킷의 고유 식별자입니다. 실제로는 애플리케이션 ID, IP 주소 또는 사용자 이름일 수 있습니다.
  • timeUnit (문자열, 필수): 재설정될 때까지 할당량 버킷이 누적되는 기간입니다. 유효한 값은 'minute', 'hour', 'day', 'week', 'month'입니다.
  • allow (숫자, 필수): 할당량 버킷의 최대 값입니다. 이 값은 현재 값과 결합되어 할당량이 성공했는지 여부를 반환합니다.
  • interval (숫자, 선택사항): 'timeUnit'과 결합하여 할당량이 재설정되기까지 걸리는 시간을 결정합니다. 기본값은 1입니다. '2시간', '3주'와 같은 할당량을 허용하려면 더 큰 값으로 설정하세요.
  • weight (숫자, 선택사항): 할당량을 늘릴 값입니다. 기본값은 1입니다.

(2) 두 번째 인수는 다음 두 인수가 있는 콜백 함수입니다.

  • 첫 번째 인수는 할당량을 증분할 수 없는 경우 Error 객체이고 작업이 성공한 경우에는 정의되지 않습니다.
  • 두 번째는 다음 필드를 포함하는 객체입니다.
    • 사용됨 (숫자): 할당량 버킷의 현재 값입니다.
    • allowed (숫자): 할당량이 초과되었다고 간주되기 전 할당량 버킷의 최대 값입니다. 동일한 값이 요청 객체에서 'allow'로 전달되었습니다.
    • isAllowed (불리언): 할당량에 여유가 있는 경우입니다. 'used'가 'allowed'보다 작거나 같은 한 true입니다.
    • 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'); }
}

재설정

할당량을 0으로 재설정하려면 quota.reset()을 호출합니다. 이 메서드에는 두 가지 매개변수가 사용됩니다.
  • 다음 필드가 있는 JSON 객체:
    • 식별자 (문자열, 필수): 할당량 버킷의 고유 식별자입니다. 실제로는 애플리케이션 ID, IP 주소 또는 사용자 이름일 수 있습니다.
    • timeUnit (문자열, 필수): 할당량 버킷이 재설정될 때까지 누적되는 시간입니다. 유효한 값은 'minute', 'hour', 'day', 'week', 'month'입니다.
    • interval (숫자, 선택사항): 'timeUnit'과 결합하여 할당량이 재설정되기까지 걸리는 시간을 결정합니다. 기본값은 1입니다. '2시간', '3주' 등과 같이 재설정 시간을 허용하려면 더 큰 값으로 설정하세요.
  • 콜백 함수:
    • 재설정이 실패하면 콜백은 Error 객체를 첫 번째 매개변수로 사용합니다.

고급 할당량 사용 사례

할당량을 만들 때 선택적 'options' 객체를 포함할 수 있습니다. 이 객체에는 선택적 매개변수가 하나 있습니다.
  • syncInterval(숫자, 선택사항): 분산된 할당량 구현이 네트워크 전반에서 상태를 동기화하는 데 걸리는 시간(초)입니다. 기본값은 10입니다.
이 매개변수를 사용하여 네트워크 전체에 분산 할당량의 성능을 최적화합니다. 설정이 낮을수록 성능이 저하되고 '적용' 작업의 지연 시간이 크게 늘어납니다. 기본 설정인 10초는 대부분의 애플리케이션에 적합합니다. 간격은 0으로 설정할 수 있습니다. 즉, 'apply'가 호출될 때마다 상태가 동기화됩니다. 이 경우 성능이 훨씬 더 나빠집니다.