按订阅设置使用量配额

适用于:所有 API 管理层级

quota 策略允许根据订阅强制实施可续订或有生存期的调用量和/或带宽配额。 超过配额时,调用方将收到 403 Forbidden 响应状态代码,响应中包含 Retry-After 标头,其值为建议的重试间隔(秒)。

若要了解速率限制和配额之间的差异,请参阅速率限制和配额。

注意

在服务平台中重启基础计算资源时,API 管理可能会在达到配额后继续处理短时间内的请求。

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略。

策略语句

<quota calls="number" bandwidth="kilobytes" renewal-period="seconds">
    <api name="API name" id="API id" calls="number">
        <operation name="operation name" id="operation id" calls="number" />
    </api>
</quota>

属性

属性 说明 需要 默认
带宽 在 renewal-period 所指定的时间间隔内允许的最大总字节数(千字节)。 不允许使用策略表达式。 必须指定 calls 和/或 bandwidth。 空值
调用 在 renewal-period 所指定的时间间隔内允许的最大总调用数。 不允许使用策略表达式。 必须指定 calls 和/或 bandwidth。 空值
续订期 固定窗口的长度(以秒为单位),此时间过后配额会重置。 每个周期的开始时间相对于订阅的开始时间进行计算。 当 renewal-period 设置为 0 时,周期设置为无穷大。 不允许使用策略表达式。 是 空值

元素

元素 说明 需要
API(应用程序编程接口) 添加一个或多个此类元素,对产品中的 API 设置调用配额。 产品和 API 的调用配额是分别应用的。 可以通过 name 或 id 引用 API。 如果同时提供了这两个属性,则将使用 id 并忽略 name。 否
操作 添加一个或多个此类元素,对 API 中的操作设置调用配额。 产品、API 和操作的调用配额是分别应用的。 可以通过 name 或 id 引用 Operation。 如果同时提供了这两个属性,则将使用 id 并忽略 name。 否

api 属性

属性 说明 需要 默认
姓名 要对其应用呼叫配额限制的 API 的名称。 必须指定 name 或 id。 空值
id 要对其应用调用配额限制的 API 的 ID。 必须指定 name 或 id。 空值
带宽 在 renewal-period 所指定的时间间隔内允许的最大总字节数(千字节)。 不允许使用策略表达式。 必须指定 calls 和/或 bandwidth。 空值
调用 在 renewal-period 所指定的时间间隔内允许的最大总调用数。 不允许使用策略表达式。 必须指定 calls 和/或 bandwidth。 空值
续订期 固定窗口的长度(以秒为单位),此时间过后配额会重置。 每个周期的开始时间相对于订阅的开始时间进行计算。 当 renewal-period 设置为 0 时,周期设置为无穷大。 不允许使用策略表达式。 是 空值

操作属性

属性 说明 需要 默认
姓名 要对其应用调用配额限制的操作的名称。 必须指定 name 或 id。 空值
id 要对其应用调用配额限制的操作的 ID。 必须指定 name 或 id。 空值
带宽 在 renewal-period 所指定的时间间隔内允许的最大总字节数(千字节)。 不允许使用策略表达式。 必须指定 calls 和/或 bandwidth。 空值
调用 在 renewal-period 所指定的时间间隔内允许的最大总调用数。 不允许使用策略表达式。 必须指定 calls 和/或 bandwidth。 空值
续订期 固定窗口的长度(以秒为单位),此时间过后配额会重置。 每个周期的开始时间相对于订阅的开始时间进行计算。 当 renewal-period 设置为 0 时,周期设置为无穷大。 不允许使用策略表达式。 是 空值

Important

当使用 name or id 属性引用 API 或操作时,不会检查链接访问。 拥有编写策略权限的用户可以引用任何可用的 API 或操作,并促使 API Management 根据配置的配额计数和限制该资源的订阅流量,即使用户没有该资源的读权限。 这并不授予查看或修改 API 或操作定义的权限。

使用情况

  • 策略节:入站
  • 策略范围:产品
  • 网关:经典、消耗、自承载

使用注意事项

  • 每个策略定义只能使用此策略一次。
  • 此策略仅在使用订阅密钥来访问 API 时应用。

示例

<policies>
    <inbound>
        <base />
        <quota calls="10000" bandwidth="40000" renewal-period="3600" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

有关使用策略的详细信息,请参阅: