更新时间:2025-07-29 GMT+08:00

设置SQL限流规则

功能介绍

设置SQL限流规则。

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

租户在某一Region下的project ID。

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

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,且长度为32个字符。

默认取值

不涉及。

instance_id

String

参数解释

实例ID,此参数是实例的唯一标识。

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,后缀为in07,长度为36个字符。

默认取值

不涉及。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释

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

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

约束限制

不涉及。

取值范围

不涉及。

默认取值

不涉及。

X-Language

String

参数解释

请求语言类型。

约束限制

不涉及。

取值范围

  • en-us

  • zh-cn

默认取值

en-us。

表3 请求Body参数

参数

是否必选

参数类型

描述

sql_filter_rules

Array of NodeSqlFilterRuleInfo objects

参数解释

节点级别的SQL限流规则。

约束限制

不涉及。

表4 NodeSqlFilterRuleInfo

参数

是否必选

参数类型

描述

node_id

String

参数解释

节点ID。

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,前面为UUID,后缀为no07,长度为36个字符。

默认取值

不涉及。

rules

Array of NodeSqlFilterRule objects

参数解释

SQL限流规则。

约束限制

集合的sql_type值不能重复。

表5 NodeSqlFilterRule

参数

是否必选

参数类型

描述

sql_type

String

参数解释

SQL限流类型。

约束限制

不涉及。

取值范围

  • SELECT

  • UPDATE

  • DELETE

  • INSERT(需要内核版本2.0.54.240600以上)

默认取值

不涉及。

patterns

Array of NodeSqlFilterRulePattern objects

参数解释

SQL限流具体规则。

约束限制

不涉及。

表6 NodeSqlFilterRulePattern

参数

是否必选

参数类型

描述

pattern

String

参数解释

SQL限流规则。

约束限制

不涉及。

取值范围

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

默认取值

不涉及。

max_concurrency

Integer

参数解释

最大并发数。

约束限制

不涉及。

取值范围

>=0。

默认取值

不涉及。

响应参数

状态码: 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"
}

状态码

请参见状态码

错误码

请参见错误码