按订阅设置使用量配额
适用于:所有 API 管理层级
quota
策略允许根据订阅强制实施可续订或有生存期的调用量和/或带宽配额。 超过配额时,调用方将收到 403 Forbidden
响应状态代码,响应中包含 Retry-After
标头,其值为建议的重试间隔(秒)。
若要了解速率限制和配额之间的差异,请参阅速率限制和配额。
注意
当服务平台基础计算资源重启时,API Management 可能会在达到配额后的短时间内继续处理请求。
注意
按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 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>
属性
属性 | 说明 | 需要 | 默认 |
---|---|---|---|
bandwidth | 在 renewal-period 所指定的时间间隔内允许的最大总字节数(千字节)。 不允许使用策略表达式。 |
必须指定 calls 和/或 bandwidth 。 |
空值 |
calls | 在 renewal-period 所指定的时间间隔内允许的最大总调用数。 不允许使用策略表达式。 |
必须指定 calls 和/或 bandwidth 。 |
空值 |
renewal-period | 固定窗口的长度(以秒为单位),此时间过后配额会重置。 每个周期的开始时间相对于订阅的开始时间进行计算。 当 renewal-period 设置为 0 时,周期设置为无穷大。 不允许使用策略表达式。 |
是 | 空值 |
元素
元素 | 说明 | 必需 |
---|---|---|
api | 添加一个或多个此类元素,对产品中的 API 设置调用配额。 产品和 API 的调用配额是分别应用的。 可以通过 name 或 id 引用 API。 如果同时提供了这两个属性,则将使用 id 并忽略 name 。 |
否 |
operation | 添加一个或多个此类元素,对 API 中的操作设置调用配额。 产品、API 和操作的调用配额是分别应用的。 可以通过 name 或 id 引用 Operation。 如果同时提供了这两个属性,则将使用 id 并忽略 name 。 |
否 |
api 属性
属性 | 说明 | 需要 | 默认 |
---|---|---|---|
name | 要对其应用呼叫配额限制的 API 的名称。 | 必须指定 name 或 id 。 |
不适用 |
id | 要对其应用调用配额限制的 API 的 ID。 | 必须指定 name 或 id 。 |
空值 |
bandwidth | 在 renewal-period 所指定的时间间隔内允许的最大总字节数(千字节)。 不允许使用策略表达式。 |
必须指定 calls 和/或 bandwidth 。 |
空值 |
calls | 在 renewal-period 所指定的时间间隔内允许的最大总调用数。 不允许使用策略表达式。 |
必须指定 calls 和/或 bandwidth 。 |
空值 |
renewal-period | 固定窗口的长度(以秒为单位),此时间过后配额会重置。 每个周期的开始时间相对于订阅的开始时间进行计算。 当 renewal-period 设置为 0 时,周期设置为无穷大。 不允许使用策略表达式。 |
是 | 空值 |
操作属性
属性 | 说明 | 需要 | 默认 |
---|---|---|---|
name | 要对其应用调用配额限制的操作的名称。 | 必须指定 name 或 id 。 |
不适用 |
id | 要对其应用调用配额限制的操作的 ID。 | 必须指定 name 或 id 。 |
空值 |
bandwidth | 在 renewal-period 所指定的时间间隔内允许的最大总字节数(千字节)。 不允许使用策略表达式。 |
必须指定 calls 和/或 bandwidth 。 |
空值 |
calls | 在 renewal-period 所指定的时间间隔内允许的最大总调用数。 不允许使用策略表达式。 |
必须指定 calls 和/或 bandwidth 。 |
空值 |
renewal-period | 固定窗口的长度(以秒为单位),此时间过后配额会重置。 每个周期的开始时间相对于订阅的开始时间进行计算。 当 renewal-period 设置为 0 时,周期设置为无穷大。 不允许使用策略表达式。 |
是 | 空值 |
使用情况
使用注意事项
- 每个策略定义只能使用此策略一次。
- 此策略仅在使用订阅密钥来访问 API 时应用。
示例
<policies>
<inbound>
<base />
<quota calls="10000" bandwidth="40000" renewal-period="3600" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
相关策略
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例