更新时间:2023-12-13 GMT+08:00

绑定流控策略

功能介绍

将流控策略应用于API,则所有对该API的访问将会受到该流控策略的限制。

当一定时间内的访问次数超过流控策略设置的API最大访问次数限制后,后续的访问将会被拒绝,从而能够较好的保护后端API免受异常流量的冲击,保障服务的稳定运行。

为指定的API绑定流控策略,绑定时,需要指定在哪个环境上生效。同一个API发布到不同的环境可以绑定不同的流控策略;一个API在发布到特定环境后只能绑定一个默认的流控策略。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见获取项目ID

instance_id

String

实例ID,在API网关控制台的“实例信息”中获取。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

strategy_id

String

流控策略编号

最小长度:1

最大长度:65

publish_ids

Array of strings

API的发布记录编号

响应参数

状态码: 201

表4 响应Body参数

参数

参数类型

描述

throttle_applys

Array of ThrottleApiBinding objects

API与流控策略的绑定关系列表

表5 ThrottleApiBinding

参数

参数类型

描述

publish_id

String

API的发布记录编号

scope

Integer

策略作用域,取值如下:

  • 1:整个API

  • 2: 单个用户

  • 3:单个APP

目前只支持1

枚举值:

  • 1

  • 2

  • 3

strategy_id

String

流控策略的ID

apply_time

String

绑定时间

id

String

绑定关系的ID

状态码: 401

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表9 响应Body参数

参数

参数类型

描述

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

错误码

请参见错误码