配置API的流量控制
流量控制支持从用户、凭据和时间段等不同的维度限制对API的调用次数,保护后端服务。支持按分/秒粒度级别的流量控制。为了提供持续稳定的服务,您可以通过配置流控策略,针对部分API进行流量控制。
约束与限制
- API配置流控策略相当于流控策略同步绑定了API。同一个环境中,一个API只能被一个流控策略绑定,但一个流控策略可以绑定多个API。
- 如果API未绑定流控策略,流控限制值为实例“配置参数”中“ratelimit_api_limits”的参数运行值。
- 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。
- 策略的绑定、解绑、更新会实时生效,不需要重新发布API。
- API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。
- 如果策略与API有绑定关系,则策略无法执行删除操作。
创建流量控制策略
- 进入API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API策略”。
- 在“策略管理”页面,单击“创建策略”。
- 在“选择策略类型”弹窗中,选择“传统策略 > 流量控制”。
- 在“创建策略”弹窗中,根据下表参数说明,配置策略信息。
表1 流量控制参数说明 参数
说明
策略名称
API流控策略名称。支持中文、英文、数字、下划线,且只能以英文或中文开头,长度为3-64个字符。
类型
分“基础流控”和“共享流控”两类。
- 基础流控针对单个API进行流量统计和控制。
- 共享流控针对绑定了该策略的所有API进行总流量统计和控制。
时长
流量限制的时长,单位可选秒、分钟、小时、天。
- 与“API流量限制”配合使用,表示单位时间内的单个API请求次数上限。
- 与“用户流量限制”配合使用,表示单位时间内的单个用户请求次数上限。
- 与“凭据流量限制”配合使用,表示单位时间内的单个凭据请求次数上限。
- 与“源IP流量限制”配合使用,表示单位时间内的单个IP地址请求次数上限。
API流量限制
单个API被调用次数上限。
与“时长”配合使用,表示单位时间内的单个API请求次数上限。
用户流量限制
单个用户调用API次数上限,仅在API的安全认证方式为APP认证或IAM认证时适用。
- 不超过“API流量限制”。
- 与“时长”配合使用,表示单位时间内的单个用户请求次数上限。
- 如果主账号下有多个子用户访问API,按主账号累计的调用次数进行限制。
凭据流量限制
单个凭据调用API次数上限,仅在API的安全认证方式为APP认证时适用。
- 不超过“用户流量限制”和“API流量限制”。
- 与“时长”配合使用,表示单位时间内的凭据请求次数上限。
源IP流量限制
单个IP地址(客户端IP地址)调用API次数上限。您可以选择配置实例的“real_ip_from_xff”参数,使用X-Forwarded-For头中的IP作为流控的判断依据。
- 不超过“API流量限制”。
- 与“时长”配合使用,表示单位时间内的IP地址请求次数上限。
描述
关于控制策略的描述。长度为1~255个字符。
- 单击“确定”。
- 如果需要对某个凭据进行流量控制,可以在“流量控制策略”中为流量控制策略配置特殊凭据。
- 如果需要对某个租户进行流量控制,可以在“流量控制策略”中为流量控制策略配置特殊租户。
- 策略创建后,您还需要为策略绑定API,才能使策略对API生效。
为策略绑定API
- 单击策略名称,进入策略详情。
- 在API列表区域选择环境后,单击“绑定API”。
- 筛选API分组以及发布环境,勾选所需的API。
支持通过API名称或标签筛选API,标签为创建API时定义的标签。
- 单击“确定”,绑定完成。
- 如果单个API不需要绑定此策略,单击API所在行的“解绑”。
- 如果批量API不需要绑定此策略,则勾选待解绑的API,单击列表上方“解绑”。最多同时解绑1000个API。
为流量控制策略配置特殊凭据
如果希望对某个凭据进行流量控制,可以通过在流控策略中添加特殊凭据实现。把凭据添加到流控策略中后,该凭据的凭据流量限制受特殊凭据的阈值限制,API流量限制和用户流量限制受流控策略限制。
- 在流控策略详情页面,单击“特殊凭据”页签,进入特殊凭据页面。
- 单击“添加特殊凭据”,弹出“添加特殊凭据”对话框。
- 通过以下两种方式,添加特殊凭据。
- 添加已有凭据:单击“已有凭据”,选择已有凭据,输入阈值。
- 添加其他凭据:单击“其他”,输入其他用户的凭据ID和阈值。
特殊凭据流控值和凭据流量限制值共同作用时,以特殊凭据流控值为准。
例如:API流量限制值为10,凭据流量限制值为3,时长为1分钟,特殊凭据(凭据A)流控值为2,特殊凭据(凭据B)流控值为4,凭据A在1分钟内最多可以访问绑定了该流控策略的API 2次,凭据B在1分钟内最多可以访问绑定了该流控策略的API 4次。
为流量控制策略配置特殊租户
如果希望对某个租户进行流量控制,可以通过在流控策略中添加特殊租户实现。把租户添加到流控策略中后,该租户的用户流量限制受特殊租户的阈值限制,API流量限制和应用流量限制受流控策略限制。
- 在流控策略详情页面,单击“特殊租户”,进入特殊租户页面。
- 单击“添加特殊租户”,弹出“添加特殊租户”对话框。
- 根据下表参数说明,输入租户信息。
表2 特殊租户信息 参数
说明
租户ID
租户ID为账号ID或项目ID。
- 绑定APP认证的API时,租户ID为项目ID,获取项目ID。
- 绑定华为IAM认证的API时,租户ID为账号ID,不支持细分到IAM用户维度,获取账号名和账号ID。
阈值
固定时间段内,此租户访问API的最大值。
不能超过API流量限制值。
- 单击“确定”,完成特殊租户的添加。
特殊租户流控值和用户流量限制值共同作用时,以特殊租户流控值为准。
例如:API流量限制值为10,用户流量限制值为3,时长为1分钟,特殊租户(租户ID为A)流控值为2,特殊租户(租户ID为B)流控值为4,租户A在1分钟内最多可以访问绑定了该流控策略的API 2次,租户B在1分钟内最多可以访问绑定了该流控策略的API 4次。