在 Node.js 中访问配额服务

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

简介

本主题介绍如何使用 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);
    });

方法


应用

修改配额对象的设置。您可以使用此方法增加或减少配额, 更改时间间隔,并进行其他配置。

用法

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 对象:

  • identifier(字符串,必需):唯一的 配额存储分区的标识符。实际上可能是应用 ID、IP 地址 用户名。
  • timeUnit(字符串,必需):配额的时长 存储分区将累计,直到重置为止。有效值为“minute”,“hour”“day”“周”和 “month”
  • allow(数字,必需): 配额存储分区。该值将与当前值组合使用,以返回 配额。
  • interval(数字,可选):与 “timeUnit”以确定多久重置配额。默认值为 1。设为更大的数字 指定“两小时”之类的配额“三周”依此类推。
  • weight(数字,可选):要 将配额增加一倍。默认值为 1。

(2) 第二个参数是一个回调函数,其中包含这两个 参数:

  • 如果配额无法达到上限,则第一个参数为 Error 对象, 如果操作成功,则返回 undefined。
  • 第二个是包含以下字段的对象: <ph type="x-smartling-placeholder">
      </ph>
    • used(数字): 配额存储分区。
    • allowed(数字): 即视为超出配额。将相同的值作为 “允许”。
    • isAllowed(布尔值):如果还有剩余空间 配额 - 只要“used”小于或等于“允许”。
    • 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'); }
}

重置

要将配额重置为零,请调用 billing.reset()。此方法接受两个参数:
<ph type="x-smartling-placeholder">
    </ph>
  • 包含以下字段的 JSON 对象: <ph type="x-smartling-placeholder">
      </ph>
    • identifier(字符串,必需):配额的唯一标识符 存储分区。实际上可能是应用 ID、IP 地址或用户名。
    • timeUnit(字符串,必需):配额分区将累计多长时间 直到重置。有效值为“minute”,“hour”“day”“周”“month”和“month”
    • interval(数字,可选):与“timeUnit”合并以确定 配额重置前多长时间。默认值为 1。设为更大的值以允许重置 例如“2 小时”“三周”依此类推。
  • 回调函数: <ph type="x-smartling-placeholder">
      </ph>
    • 如果重置失败,回调会将 Error 对象作为第一个参数。

高级配额用例

创建配额时,您可以 可选的“选项”对象。此对象有一个可选参数: <ph type="x-smartling-placeholder">
    </ph>
  • syncInterval(数字,可选):上传 分布式配额实现在整个网络中同步其状态。默认值为 10。
使用此参数可优化整个广告网络中的分布式配额的性能。保留 请注意,较低的设置会降低性能,并显著增加 “应用”操作。对于许多应用而言,默认的 10 秒设置是不错的设置。 时间间隔可以设置为低至零,这意味着系统每次都会同步该状态 “申请”调用该方法。在这种情况下,性能会更差。