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

방법


적용

할당량 객체의 설정을 수정합니다. 할당량을 늘리거나 줄이고, 시간 간격을 변경하고, 다른 구성을 만들려면 이 메서드를 사용합니다.

사용

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 (문자열, 필수): 재설정될 때까지 할당량 버킷이 누적되는 시간입니다. 유효한 값은 '분', '시간', '일', '주', '월'입니다.
  • allow (숫자, 필수): 할당량 버킷의 최댓값입니다. 이 값은 현재 값과 결합되어 할당량이 성공했는지 여부를 반환합니다.
  • interval (숫자, 선택사항): 'timeUnit'과 결합하여 할당량이 재설정되기까지 걸리는 시간을 결정합니다. 기본값은 1입니다. '2시간', '3주' 등의 할당량을 허용하려면 더 큰 값으로 설정합니다.
  • weight (숫자, 선택사항): 할당량을 증가시킬 값입니다. 기본값은 1입니다.

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

  • 첫 번째 인수는 할당량을 늘릴 수 없는 경우 오류 객체이고, 작업이 성공하면 정의되지 않습니다.
  • 두 번째는 다음 필드가 포함된 객체입니다.
    • used (숫자): 할당량 버킷의 현재 값입니다.
    • allowed (숫자): 할당량이 초과된 것으로 간주되기 전의 할당량 버킷 최댓값입니다. 동일한 값이 요청 객체에서 '허용'으로 전달되었습니다.
    • 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으로 재설정하려면 할당량.reset()을 호출합니다. 이 메서드는 다음 두 매개변수를 사용합니다.
  • 다음 필드가 있는 JSON 객체:
    • 식별자 (문자열, 필수): 할당량 버킷의 고유 식별자입니다. 실제로는 애플리케이션 ID, IP 주소 또는 사용자 이름일 수 있습니다.
    • timeUnit (문자열, 필수): 재설정될 때까지 할당량 버킷이 누적되는 시간입니다. 유효한 값은 '분', '시간', '일', '주', '월'입니다.
    • interval (숫자, 선택사항): 'timeUnit'과 결합하여 할당량이 재설정되기까지 걸리는 시간을 결정합니다. 기본값은 1입니다. 재설정 시간을 허용할 수 있도록 '2시간', '3주' 등의 더 큰 값으로 설정합니다.
  • 콜백 함수:
    • 재설정에 실패하면 콜백은 Error 객체를 첫 번째 매개변수로 사용합니다.

고급 할당량 사용 사례

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