• 沒有找到結果。

3.9 插件管理

3.9.4 流量控制插件

}

3.9.4 流量控制插件

流量控制插件可以限制单位时间内API的被调用次数,支持参数流控、基础流控和基于 基础流控的特殊流控。

说明

2021年12月4日后创建的专享版实例支持流量控制插件,在这之前创建的专享版实例不支持流量 控制插件,如需使用流量控制插件,请联系客服。

● 基础流控

可以对API、用户、应用、源IP进行多维度流控,与已有的流量控制功能一致但不 兼容。

● 参数流控

支持根据Header、Path、Method、Query以及系统变量中的参数值进行自定义流 控。

对单个API进行流量统计和控制。

● API共享生效

对绑定了该插件的所有API进行总流量统计和控制。

时长 流量限制的时长。

● 与“API流量限制”配合使用,表示单位时间内的单个 API请求次数上限。

● 与“用户流量限制”配合使用,表示单位时间内的单个 用户请求次数上限。

● 与“应用流量限制”配合使用,表示单位时间内的单个 APP请求次数上限。

● 与“源IP流量限制”配合使用,表示单位时间内的单个 IP地址请求次数上限。

参数 配置说明

API流量限制 单个API被调用次数上限。

与“时长”配合使用,表示单位时间内的单个API请求次 数上限。

用户流量限制 单个用户调用API次数上限,如果API认证方式为IAM认 证,用户流量根据项目ID来限制;如果API认证方式为APP 认证,用户流量根据帐号ID来限制。帐号ID和项目ID请参 考下文“特殊租户”配置说明。

● 不超过“API流量限制”。

● 与“时长”配合使用,表示单位时间内的单个用户请求 次数上限。

● 如果主帐号下有多个子用户访问API,按主帐号累计的 调用次数进行限制。

应用流量限制 单个应用调用API次数上限,仅适用于API的安全认证方式 为APP认证时。

● 不超过“用户流量限制”。

● 与“时长”配合使用,表示单位时间内的单个应用请求 次数上限。

源IP流量限制 单个IP地址调用API次数上限。

● 不超过“API流量限制”。

● 与“时长”配合使用,表示单位时间内的单个IP地址请 求次数上限。

参数流控配置 参数流控配置开关。开启后,以参数维度进行流控限制。

定义参数 定义用于规则匹配的参数。

● 参数位置:用于规则匹配的参数位置。

– path:API请求的URI,系统默认配置。

– method:API请求方法,系统默认配置。

– Header:HTTP头域的第一个值。

– Query:QueryString的第一个值。

– System:系统参数。

● 参数:用于判断与规则匹配中的参数值是否匹配。

参数 配置说明

– pattern为正则表达式

– enum为枚举值,多个参数值之间用英文逗号分隔

● API流量限制

API调用次数的最大值。

● 时长

定义规则的流量控制时长,若此处不配置时长,规则的 流量控制时长以“策略基本信息”的时长为准。

例如,在“定义参数”中添加参数“Host”,参数位置选 择“Header”;在“定义规则”中添加一条规则,匹配条 件设置成“Host = www.abc.com”,API流量限制为10,

时长为60s。表示在60s内,对于请求头域中host参数等于

“www.abc.com”的API,且API调用次数达到10,参数流 控生效。

特殊流控配置 特殊流控配置开关。开启后,“基础流控”的用户流量限 制/应用流量限制与“特殊流控”的特殊租户/特殊应用共 同作用时,以特殊流控值为准。

特殊租户 租户ID为帐号ID或项目ID。

● 绑定APP认证的API时,租户ID为项目ID,获取项目 ID。

● 绑定华为IAM认证的API时,租户ID为帐号ID,不支持 细分到IAM用户维度,获取帐号名和帐号ID。

阈值为单位时间内,此租户访问API的最大值,不超过

“基础流控”的API流量限制值。

特殊应用 选择已有应用,阈值为单位时间内,此应用访问API的最 大值,不超过“基础流控”的API流量限制值。

脚本配置示例

{ "scope": "basic", "default_interval": 60, "default_time_unit": "second", "api_limit": 100,

"app_limit": 50, "user_limit": 50, "ip_limit": 20, "specials": [ {

"type": "app", "policies": [ {

"key": "2e421d76dc6c4c75941511ccf654e368", "limit": 10

"key": "878f1b87f71c40a7a15db0998f358bb9", "limit": 10

"match_regex": "[\"Host\",\"==\",\"www.abc.com\"]", "rule_name": "rule-jlce",

"time_unit": "second",

如果某一个插件不再提供服务,则可以将其删除。未绑定API的插件可直接删除,已绑 定API的需先解除绑定关系。

前提条件

已创建插件。

操作步骤

步骤1 登录管理控制台。