云服务器内容精选

  • URI URI格式 GET /v3/{project_id}/instances/{instance_id}/sql-limit?db_name={db_name}&offset={offset}&limit={limit} 参数说明 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID。 db_name 是 String 数据库名称。 offset 否 Integer 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。 limit 否 Integer 查询记录数。默认为10,不能为负数,最小值为1,最大值为100。
  • 响应消息 正常响应要素说明 表2 字段说明 名称 参数类型 说明 count Integer SQL限流总数。 sql_limit_objects Array of objects SQL限流详情。 请参见表3。 表3 sql_limit_objects字段数据结构说明 名称 参数类型 说明 id String SQL限流ID。 query_id String 由SQL的语法解析树计算出的内部哈希码,默认为0,取值范围:-9223372036854775808~ 9223372036854775807。 query_string String SQL语句的文本形式。 max_concurrency Integer 同时执行的SQL数量,小于等于0表示不限制,默认为0,取值范围:-1~50000。 is_effective Boolean 是否生效。 max_waiting Integer 最大等待时间,单位为秒。 search_path String 为不是模式限定的名称设置模式搜索顺序,默认为public。 正常响应样例 { "count": 2, "sql_limit_objects": [ { "id": "3", "query_id": "1147616880456321454", "query_string": "select 1;", "max_concurrency": 10, "is_effective": false, "max_waiting": 10, "search_path": "public" }, { "id": "4", "query_id": "-7472493489976133824", "query_string": "select * from pg_type;", "max_concurrency": 10, "is_effective": false, "max_waiting": 10, "search_path": "public" } ] } 异常响应 请参见异常请求结果。
  • 响应示例 { "task_id" : "59b6a1a278844ac48119d86512e0000", "task_scope" : "SQL", "task_name" : "test1", "limit_type" : "SQL_TYPE", "limit_type_value" : "select", "instance_id" : "cb651ac71c5a447685ef981e44a0422fin14", "key_words" : "test", "databases" : "test1", "status" : "creating", "parallel_size" : 100, "rule_name" : "dsa48119d86512e0000bin066a1a27", "start_time" : "2023-12-30T02:00:00Z", "end_time" : "2023-12-30T02:00:00Z", "created" : "2023-12-30T02:00:00Z", "updated" : "2023-12-30T02:00:00Z", "creator" : "dbs_rds_guangzhou_l00417929_01", "job_id" : "d8819ac11297598d06e591b5786aab86" }
  • 请求示例 创建限流范围是SQL级别,限流类型是SQL_ID的限流任务。 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/3d39c18788b54a919bab633874c159dfin14/limit-task { "task_scope" : "SQL", "start_time" : "2023-06-06T01:47:20+0800", "end_time" : "2023-06-07T01:47:20+0800", "limit_type" : "SQL_ID", "limit_type_value" : "39b6a1a", "task_name" : "test1", "sql_model" : "select * from a where b = ?", "parallel_size" : 100, "node_infos" : [ { "node_id" : "46d996fdda594f58b17fe509061e0893no14", "sql_id" : "39b6a1a" } ] } 创建限流范围是SQL级别,限流类型是SQL_TYPE的限流任务。 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/3d39c18788b54a919bab633874c159dfin14/limit-task { "task_scope" : "SQL", "start_time" : "2023-06-06T01:47:20+0800", "end_time" : "2023-06-07T01:47:20+0800", "limit_type" : "SQL_TYPE", "limit_type_value" : "select", "task_name" : "test1", "key_words" : "table1,id", "parallel_size" : 100, "databases" : "test1" } 创建限流范围是SESSION级别,限流类型是SESSION_ACTIVE_MAX_COUNT的限流任务。 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/3d39c18788b54a919bab633874c159dfin14/limit-task { "task_name" : "test", "task_scope" : "SESSION", "limit_type" : "SESSION_ACTIVE_MAX_COUNT", "limit_type_value" : "CPU_OR_MEMORY", "cpu_utilization" : 80, "memory_utilization" : 80, "parallel_size" : 100 }
  • 响应参数 表5 响应Body参数 参数 参数类型 描述 task_id String 限流任务ID。 task_scope String 任务限流范围。 limit_type String 任务限流类型。 limit_type_value String 任务限流类型值。 databases String 实例的数据库列表,每个数据库以英文逗号形式隔开。 task_name String 限流任务名。 sql_model String SQL模板,仅当任务类型为SQL_ID时,返回该值。 key_words String 关键词,仅当任务类型为SQL_TYPE时,返回该值。 status String 限流任务状态,当前支持:CREATING,UPDATING,DELETING,WAIT_EXECUTE,EXCUTING,TIME_OVER,DELETED,CREATE_FAILED,UPDATE_FAILED,DELETE_FAILED,EXCEPTION,NODE_SHUT_DOWN。 instance_id String 实例ID。 rule_name String 规则名。 parallel_size Integer 并发数。 cpu_utilization Integer CPU利用率阈值,仅当任务类型为SESSION_ACTIVE_MAX_COUNT时,返回该值且只保留整数部分。 memory_utilization Integer 内存利用率阈值,仅当任务类型为SESSION_ACTIVE_MAX_COUNT时,返回该值且只保留整数部分。 start_time String 限流任务开始时间,格式为yyyy-mm-ddThh:mm:ssZ。当“task_scope”为SQL时会返回该参数。 end_time String 限流任务结束时间,格式为yyyy-mm-ddThh:mm:ssZ。当“task_scope”为SQL时会返回该参数。 created String 创建时间,格式为yyyy-mm-ddThh:mm:ss+0000。 updated String 更新时间,格式为yyyy-mm-ddThh:mm:ss+0000。 creator String 创建者。 modifier String 更新者。 node_infos Array of 表6 objects CN节点信息列表,如果类型为SQLID,返回该值且与请求参数相同。 job_id String 工作流ID。 表6 CreateLimitTaskNodeResult 参数 参数类型 描述 node_id String 节点ID。 sql_id String 该节点执行的SQL语句ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务获取用户Token接口获取。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 语言。 缺省值:en-us 枚举值: zh-cn en-us 表3 请求Body参数 参数 是否必选 参数类型 描述 task_scope 是 String 限流任务范围,目前支持SQL,SESSION两种级别范围。 start_time 否 String 任务开始时间,当“task_scope”为SQL时必传。 取值范围:大于等于当前时间(UTC时间)的前两分钟。 格式必须为yyyy-mm-ddThh:mm:ss+0000。 end_time 否 String 任务结束时间,当“task_scope”为SQL时必传。 取值范围:大于任务开始时间。 格式必须为yyyy-mm-ddThh:mm:ss+0000。 limit_type 是 String 限流类型。 当“task_scope”为SQL时,可选SQL_ID、SQL_TYPE类型。 当“task_scope”为SESSION时,可选SESSION_ACTIVE_MAX_COUNT类型。 limit_type_value 是 String 限流类型值。 当“limit_type”为SQL_ID类型时,该值为选中模板的sql_id。 当“limit_type”为SQL_TYPE类型时,值为SQL类型,目前支持select,update,insert,delete,merge。 当“limit_type”为SESSION_ACTIVE_MAX_COUNT类型时,只支持CPU_OR_MEMORY一种值。 key_words 否 String 关键词,当“limit_type”为SQL_TYPE时,必传。 多个关键词以逗号隔开,数量范围为[2,100]个,每个关键词长度范围[2,64]位,关键词不允许包含 " 或 \ 或 {} 或 null值以及非首尾的空格符。 task_name 是 String 限流任务名称,只能为英文字母大小写,下划线,数字和$符,最大长度为100个字符。 sql_model 否 String SQL模板。如果“limit_type”为SQLID,必传。 parallel_size 是 Integer 并发数,大于等于零的正整数,取值范围[0, 2147483647]。 cpu_utilization 否 Integer CPU利用率阈值,整数,取值范围[0,100)。 如果“limit_type”为SESSION_ACTIVE_MAX_COUNT,则“cpu_utilization”必选。 不支持和内存利用率阈值同时为0,如果选择只限制CPU、内存中的其中一个,则另一个必须传值0。 memory_utilization 否 Integer 内存利用率阈值,整数,取值范围[0,100)。 如果“limit_type”为SESSION_ACTIVE_MAX_COUNT,则“memory_utilization”必选。 不支持和CPU利用率阈值同时为0,如果选择只限制CPU、内存中的其中一个,则另一个必须传值0。 databases 否 String 实例的数据库列表,每个数据库以英文逗号形式隔。 如果“limit_type”为SQL_TYPE,则“databases”必选。 node_infos 否 Array of objects CN节点信息列表,详情参见表表4。 如果“limit_type”为SQL_ID,则“node_infos”必选。 表4 CreateLimitTaskNodeOption 参数 是否必选 参数类型 描述 node_id 是 String 节点ID。 sql_id 是 String 该节点执行的SQL语句ID,如果“limit_type”为SQL_ID,必须与“limit_type_value”值一致。
  • URI POST https://{Endpoint}/v3/{project_id}/instances/{instance_id}/limit-task 表1 参数说明 名称 是否必选 说明 project_id 是 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 实例ID。
  • 请求示例 新增SQL限流。 POST https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/49b9dd1d6f464ba4bc91df5cbd2e52ebin03/sql-limit { "db_name" : "postgres", "query_id" : 1, "max_concurrency" : 10, "max_waiting" : 10, "search_path" : "public" }
  • 请求消息 表2 参数说明 参数 是否必选 参数类型 描述 db_name 是 String 数据库名称。 query_id 否 Long 由SQL的语法解析树计算出的内部哈希码,默认为0,取值范围:-9223372036854775808~ 9223372036854775807。 query_string 否 String SQL语句的文本形式。query_id与query_string只可以存在一个。 max_concurrency 是 Integer 同时执行的SQL数量,小于等于0表示不限制,默认为0,取值范围:-1~50000。 max_waiting 是 Integer 最大等待时间,单位为秒。 search_path 否 String 为不是模式限定的名称设置模式搜索顺序,默认为public。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 node_id String 节点ID。 sql_filter_rules Array of SqlFilterRule objects SQL限流规则。 表5 SqlFilterRule 参数 参数类型 描述 sql_type String SQL限流类型。 取值范围: SELECT UPDATE DELETE patterns Array of SqlFilterRulePattern objects SQL限流具体规则。 表6 SqlFilterRulePattern 参数 参数类型 描述 pattern String SQL限流规则。 max_concurrency Integer 最大并发数。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • URI GET /v3/{project_id}/instances/{instance_id}/sql-filter/rules 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID,严格匹配UUID规则。 表2 Query参数 参数 是否必选 参数类型 描述 node_id 是 String 节点ID。 sql_type 否 String SQL限流类型,取值为SELECT、UPDATE、DELETE,不区分大小写;若不传则默认查询所有类型的限流规则。
  • 响应示例 状态码: 200 Success. { "node_id" : "c01a5645eb2c4fb6a9373542f5366e50no07", "sql_filter_rules" : [ { "sql_type" : "SELECT", "patterns" : [ { "pattern" : "select~from~t1", "max_concurrency" : 0 }, { "pattern" : "select~from~t2~where~id", "max_concurrency" : 10 } ] }, { "sql_type" : "UDPATE", "patterns" : [ { "pattern" : "update~t1", "max_concurrency" : 0 }, { "pattern" : "update~t2~where~id", "max_concurrency" : 10 } ] }, { "sql_type" : "DELETE", "patterns" : [ { "pattern" : "delete~from", "max_concurrency" : 0 } ] } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Language 否 String 语言。 表3 请求Body参数 参数 是否必选 参数类型 描述 sql_filter_rules 是 Array of DeleteNodeSqlFilterRuleInfo objects 节点级别的SQL限流规则。 表4 DeleteNodeSqlFilterRuleInfo 参数 是否必选 参数类型 描述 node_id 是 String 节点ID rules 是 Array of DeleteNodeSqlFilterRule objects SQL限流规则。 表5 DeleteNodeSqlFilterRule 参数 是否必选 参数类型 描述 sql_type 是 String Sql限流类型。 取值范围: SELECT UPDATE DELETE patterns 是 Array of strings SQL限流具体规则。
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 job_id String 删除SQL限流规则任务ID。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • 请求示例 删除SQL限流规则,限流类型为SELECT、UPDATE、DELETE。 DELETE https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/af315b8e6aaa41799bd9a31f2de15abcin07/sql-filter/rules{ "sql_filter_rules" : [ { "node_id" : "c01a5645eb2c4fb6a9373542f5366e50no07", "rules" : [ { "sql_type" : "SELECT", "patterns" : [ "select~from~t1", "select~from~t2" ] }, { "sql_type" : "UPDATE", "patterns" : [ "udpate~t3~where~id" ] } ] }, { "node_id" : "b234a5645eb2c4ji3b9372342f5362397no07", "rules" : [ { "sql_type" : "SELECT", "patterns" : [ "select~from~t1", "select~from~t2" ] }, { "sql_type" : "DELETE", "patterns" : [ "delete~t3~where~id" ] } ] } ]}