更新时间:2022-08-30 GMT+08:00
分享

创建流控策略

功能介绍

当API上线后,系统会默认给每个API提供一个流控策略,API提供者可以根据自身API的服务能力及负载情况变更这个流控策略。

流控策略即限制API在一定长度的时间内,能够允许被访问的最大次数。

URI

HTTP/HTTPS请求方法以及URI如下表所示。

表1 HTTP/HTTPS请求方法以及URI

请求方法

URI

POST

/v1/{project_id}/apigw/instances/{instance_id}/throttles

URI中的参数说明如下表所示。

表2 参数说明

名称

是否必选

类型

说明

project_id

String

项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。

instance_id

String

实例ID,可从API网关控制台的专享版实例信息中获取。

请求消息

表3 参数说明

参数

是否必选

类型

说明

name

String

流控策略名称。

支持汉字,英文,数字,下划线,且只能以英文和汉字开头,3 ~ 64字符。

说明:

中文字符必须为UTF-8或者unicode编码。

api_call_limits

Integer

API流量限制是指时长内一个API能够被访问的次数上限。该值不超过系统默认配额限制,系统默认配额为200tps,用户可根据实际情况修改该系统默认配额。输入的值不超过2147483647。正整数。

user_call_limits

Integer

用户流量限制是指一个API在时长之内每一个用户能访问的次数上限,该数值不超过API流量限制值。输入的值不超过2147483647。正整数。

app_call_limits

Integer

APP流量限制是指一个API在时长之内被每个APP访问的次数上限,该数值不超过用户流量限制值。输入的值不超过2147483647。正整数。

ip_call_limits

Integer

源IP流量限制是指一个API在时长之内被每个IP访问的次数上限,该数值不超过API流量限制值。输入的值不超过2147483647。正整数。

time_interval

Integer

流量控制的时长单位。与“流量限制次数”配合使用,表示单位时间内的API请求次数上限。输入的值不超过2147483647。正整数。

time_unit

String

流控的时间单位:

  • SECOND
  • MINUTE
  • HOUR
  • DAY

remark

String

流控策略描述

字符长度不超过255。

说明:

中文字符必须为UTF-8或者unicode编码。

type

Integer

流控策略的类型,取值如下:

  • 1:独享,表示绑定到流控策略的单个API流控时间内能够被调用多少次。
  • 2:共享,表示绑定到流控策略的所有API流控时间内能够被调用多少次。

enable_adaptive_control

String

是否开启动态流控:

  • TRUE
  • FALSE

暂不支持

请求消息样例:

{
	"api_call_limits": 800,
	"user_call_limits": 500,
	"app_call_limits": 300,
        "ip_call_limits": 600,
	"name": "每秒800次",
	"remark": "API每秒800次,用户500次,APP300次,IP600次",
	"time_interval": 1,
	"time_unit": "SECOND"
}

响应消息

表4 参数说明

参数

类型

说明

id

String

流控策略的编号

name

String

流控策略的名称

api_call_limits

Integer

单个API流控时间内能够被访问的次数限制

user_call_limits

Integer

单个用户流控时间内能够访问API的次数限制

app_call_limits

Integer

单个APP流控时间内能够访问API的次数限制

ip_call_limits

Integer

单个IP流控时间内能够访问API的次数限制

time_interval

Integer

流控的时长

time_unit

String

流控的时间单位

remark

String

描述

create_time

Timestamp

创建时间

is_include_special_throttle

Integer

是否包含特殊流控配置:

  • 1:包含
  • 2:不包含

type

Integer

流控策略的类型,取值如下:

  • 1:独享
  • 2:共享

bind_num

Integer

流控绑定的API数量

enable_adaptive_control

String

是否开启动态流控:

  • TRUE
  • FALSE

暂不支持

响应消息样例:

{
	"id": "0325b671-2d50-4614-9868-22102262695d",
	"name": "每秒800次",
	"api_call_limits": 800,
	"user_call_limits": 500,
	"app_call_limits": 300,
        "ip_call_limits": 600,
	"time_interval": 1,
	"time_unit": "SECOND",
	"create_time": "2017-12-29T01:55:59.9904225Z",
	"remark": "API每秒800次,用户500次,APP300次,IP600次",
	"is_inclu_special_throttle": 2,
        "type":1,
	"bind_num": 0,
        "enable_adaptive_control": "FALSE"
}

状态码

表5 返回消息说明

状态码

说明

201

Created

400

Bad Request

401

Unauthorized

500

Server Internal Error

相关文档