绑定流控策略
功能介绍
将流控策略应用于API,则所有对该API的访问将会受到该流控策略的限制。
当一定时间内的访问次数超过流控策略设置的API最大访问次数限制后,后续的访问将会被拒绝,从而能够较好的保护后端API免受异常流量的冲击,保障服务的稳定运行。
为指定的API绑定流控策略,绑定时,需要指定在哪个环境上生效。同一个API发布到不同的环境可以绑定不同的流控策略;一个API在发布到特定环境后只能绑定一个默认的流控策略。
调用方法
请参见如何调用API。
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方式请参见获取项目ID。 |
instance_id |
是 |
String |
实例ID,在API网关控制台的“实例信息”中获取。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
strategy_id |
是 |
String |
流控策略编号 最小长度:1 最大长度:65 |
publish_ids |
是 |
Array of strings |
API的发布记录编号 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
throttle_applys |
Array of ThrottleApiBinding objects |
API与流控策略的绑定关系列表 |
参数 |
参数类型 |
描述 |
---|---|---|
publish_id |
String |
API的发布记录编号 |
scope |
Integer |
策略作用域,取值如下:
目前只支持1 |
strategy_id |
String |
流控策略的ID |
apply_time |
String |
绑定时间 |
id |
String |
绑定关系的ID |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 404
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
请求示例
为指定的API绑定流控策略
{ "publish_ids" : [ "40e7162dc6b94bbbbb1a60d2a24b1b0c" ], "strategy_id" : "3437448ad06f4e0c91a224183116e965" }
响应示例
状态码: 201
Created
{ "throttle_applys" : [ { "publish_id" : "40e7162dc6b94bbbbb1a60d2a24b1b0c", "scope" : 1, "strategy_id" : "3437448ad06f4e0c91a224183116e965", "apply_time" : "2020-08-03T12:25:52.257613934Z", "id" : "3e06ac135e18477e918060d3c59d6f6a" } ] }
状态码: 401
Unauthorized
{ "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" }
状态码: 403
Forbidden
{ "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" }
状态码: 404
Not Found
{ "error_code" : "APIG.3005", "error_msg" : "Request throttling policy 3437448ad06f4e0c91a224183116e965 does not exist" }
状态码: 500
Internal Server Error
{ "error_code" : "APIG.9999", "error_msg" : "System error" }
状态码
状态码 |
描述 |
---|---|
201 |
Created |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found |
500 |
Internal Server Error |
错误码
请参见错误码。