更新时间:2024-02-27 GMT+08:00

设置SQL限流规则

功能介绍

设置SQL限流规则。

URI

PUT /v3/{project_id}/instances/{instance_id}/sql-filter/rules

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户在某一Region下的project ID。

获取方法请参见获取项目ID

instance_id

String

实例ID,严格匹配UUID规则。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取。

请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。

X-Language

String

请求语言类型。默认en-us。

取值范围:

  • en-us
  • zh-cn
表3 请求Body参数

参数

是否必选

参数类型

描述

sql_filter_rules

Array of NodeSqlFilterRuleInfo objects

节点级别的SQL限流规则。

表4 NodeSqlFilterRuleInfo

参数

是否必选

参数类型

描述

node_id

String

节点ID。

rules

Array of NodeSqlFilterRule objects

SQL限流规则。集合的sql_type值不能重复。

表5 NodeSqlFilterRule

参数

是否必选

参数类型

描述

sql_type

String

SQL限流类型。

取值范围:

  • SELECT:SELECT语句。
  • UPDATE:UPDATE语句。
  • DELETE:DELETE语句。

patterns

Array of NodeSqlFilterRulePattern objects

SQL限流具体规则。

表6 NodeSqlFilterRulePattern

参数

是否必选

参数类型

描述

pattern

String

SQL限流规则,由一个或多个关键字(最多为128个关键字)组成,关键字之间通过"~"分隔符分开,如select~from~t1。规则中不能包含‘\’、中英文逗号、‘~~’,不能以‘~’结尾。

max_concurrency

Integer

最大并发数。

取值范围:非负整数。

响应参数

状态码: 200

表7 响应Body参数

参数

参数类型

描述

job_id

String

设置SQL限流规则任务ID。

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误消息。

状态码: 500

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误消息。

请求示例

设置SQL限流规则,限流类型为SELECT、UPDATE、DELETE。

PUT https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instance/af315b8e6aaa41799bd9a31f2de15abcin07/sql-filter/rules
{
  "sql_filter_rules" : [ {
    "node_id" : "c01a5645eb2c4fb6a9373542f5366e50no07",
    "rules" : [ {
      "sql_type" : "SELECT",
      "patterns" : [ {
        "pattern" : "select~from~t1",
        "max_concurrency" : 0
      }, {
        "pattern" : "select~from~t3~where~id",
        "max_concurrency" : 10
      } ]
    }, {
      "sql_type" : "UPDATE",
      "patterns" : [ {
        "pattern" : "update~t3~where~id",
        "max_concurrency" : 10
      } ]
    } ]
  }, {
    "node_id" : "b234a5645eb2c4ji3b9372342f5362397no07",
    "rules" : [ {
      "sql_type" : "SELECT",
      "patterns" : [ {
        "pattern" : "select~from~t3~where~id",
        "max_concurrency" : 10
      } ]
    }, {
      "sql_type" : "DELETE",
      "patterns" : [ {
        "pattern" : "delete~t3~where~id",
        "max_concurrency" : 10
      } ]
    } ]
  } ]
}

响应示例

状态码: 200

Success.

{
  "job_id" : "aef6a470-fb63-4d5b-b644-12ead7e019b3"
}

状态码

请参见状态码

错误码

请参见错误码