绑定流控策略 - AssociateRequestThrottlingPolicyV2
功能介绍
将流控策略应用于API,则所有对该API的访问将会受到该流控策略的限制。
当一定时间内的访问次数超过流控策略设置的API最大访问次数限制后,后续的访问将会被拒绝,从而能够较好的保护后端API免受异常流量的冲击,保障服务的稳定运行。
为指定的API绑定流控策略,绑定时,需要指定在哪个环境上生效。同一个API发布到不同的环境可以绑定不同的流控策略;一个API在发布到特定环境后只能绑定一个默认的流控策略。
调用方法
请参见如何调用API。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
apig:api:bindRequestThrottling
Write
instance *
g:ResourceTag/<tag-key>
- apig:apis:bindThrottles
- apig:instance:get
- apig:api:get
- apig:requestThrottling:get
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 |
错误码
请参见错误码。