华为云用户手册

  • DDM账号管理 表1 DDM账号管理 权限 对应API接口 授权项 IAM 项目(Project) 企业项目 (Enterprise Rroject) 创建DDM账号 POST /v1/{project_id}/instances/{instance_id}/users ddm:user:create √ √ 查询DDM账号列表 GET /v1/{project_id}/instances/{instance_id}/users?offset={offset}&limit={limit} ddm:user:list √ √ 修改DDM账号 PUT /v1/{project_id}/instances/{instance_id}/users/{username} ddm:user:modify √ √ 删除DDM账号 DELETE /v1/{project_id}/instances/{instance_id}/users/{username} ddm:user:delete √ √ 父主题: 授权策略及授权项
  • 操作步骤 指定limit与offset查询DDM实例列表。 接口相关信息 URI格式: GET /v1/{project_id}/instances 详情请参见查询DDM实例列表。 请求示例 GET: https://{endpoint}/v1/743b4c0428d945316666666666666666/instances?offset=0&limit=1 {endpoint}信息请从地区和终端节点获取。 limit值可根据DDM实例数据调整。 响应示例 {"instance_num":10,"instances":[{"id":"cab932b426ed4215a8d76b9d71322661in09","status":"RUNNING","name":"ddm-20-single-2u4g-1-202010231552401522260","created":"2020-10-23T07:52:46+0000","updated":"2020-10-23T07:59:56+0000","available_zone":"az1xahz","vpc_id":"9cf0f8f5-9748-4ebb-9905-bbe429182bd6","subnet_id":"b35a4be7-65a5-4176-bec9-7a437493c498","security_group_id":"9d10da6d-38cc-4cf0-8f96-c34940a3fd15","node_count":1,"access_ip":"192.168.60.13","access_port":"5066","core_count":"2","ram_capacity":"4","node_status":"RUNNING","enterprise_project_id":"0","project_id":"070c071d8e80d58c2f42c0121b10cf9f","engine_version":"2.5.10.10222119"}],"page_no":1,"page_size":1,"total_record":10,"total_page":10} 汇总查询结果。 参考1持续调用,如果查询的DDM实例列表为空,或者返回的body体中不存在instances字段,表明所有DDM实例查询完成。 汇总所有查询到的DDM实例即当前查询条件下的所有DDM实例。
  • URI DELETE /v1/{project_id}/instances/{instance_id}/databases/{ddm_dbname}?delete_rds_data={delete_rds_data} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法请参见获取项目ID。 instance_id 是 String DDM实例ID。 ddm_dbname 是 String 需要查询的逻辑库名称,不区分大小写。 表2 Query参数 参数 是否必选 参数类型 描述 delete_rds_data 否 String 是否同时删除关联后端数据库实例上存储的数据。 取值为“true”:删除。 取值为空或“false”:不删除。 默认值为空。 枚举值: true false
  • 响应示例 状态码: 200 OK { } 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 请求示例 删除DDM逻辑库(删除关联后端数据库实例上存储的数据)。 DELETE https://{endpoint}/v1/{project_id}/instances/{instance_id}/databases/{ddm_dbname}?delete_rds_data=true 删除DDM逻辑库(保留关联后端数据库实例上存储的数据)。 DELETE https://{endpoint}/v1/{project_id}/instances/{instance_id}/databases/{ddm_dbname}?delete_rds_data=false
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 instanceId String DDM实例ID。 instanceName String DDM实例名称。 jobId String 任务ID,仅按需实例时会返回该参数。 orderId String 订单号,仅包年包月实例时返回该参数。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 请求示例 缩容实例节点,需要缩容的节点数量为2。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/reduce{ "node_number" : 2} 缩容实例节点,实例有多个组,需要缩容的节点数量为1。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/reduce{ "group_id" : "f080abf2010d45118068c28c8958f5fcgr09", "node_number" : 1}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 node_number 是 Integer 需要缩容的节点数量,最大值为实例节点数减1。 group_id 否 String 组ID,指定当前进行节点扩容的组。当实例的组大于1时,必填。
  • 响应示例 状态码: 200 ok { "instanceId" : "28e8841d0b9c4f6a9a30742ee60e1068in09", "instanceName" : "BUG-ddm-fb88-test", "jobId" : "1eb697c0-1842-43a3-8671-f562d0385cb9"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 响应示例 状态码: 200 OK { "security_group_id" : "035b70ed-319b-4086-9fd7-62a2e8548b2e"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 security_group_id String 安全组ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 响应示例 状态码: 200 ok { "instanceId" : "28e8841d0b9c4f6a9a30742ee60e1068in09", "instanceName" : "ddm-fb88-test", "jobId" : "1eb697c0-1842-43a3-8671-f562d0385cb9"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 instanceId String DDM实例ID。 instanceName String DDM实例名称。 jobId String 任务ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 restart 否 RestarInstanceInfo object 重启相关的参数。 表4 RestarInstanceInfo 参数 是否必选 参数类型 描述 type 否 String 重启的类型,soft或者hard。 soft表示软重启(只重启进程)。 hard表示强制重启(重启虚拟机)。 枚举值: soft hard
  • 响应示例 状态码: 200 OK { "name" : "DDM-test-04"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 name String DDM实例名称。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String DDM实例名称,命名要求如下。 长度为4-64个字符。 必须以字母开头。 可以包含字母、数字、中划线、下划线,不能包含其它特殊字符。 最小长度:4 最大长度:64
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 name String DDM实例账号名称。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表5 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 响应示例 状态码: 200 OK { "name" : "ddmtest"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 instanceId String DDM实例ID。 instanceName String DDM实例名称,仅按需实例时会返回该参数。 jobId String 任务ID,仅按需实例时会返回该参数。 orderId String 订单号,仅包年包月实例时返回该参数。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 请求示例 扩容按需实例的节点,需要扩容的节点数量为1。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/enlarge{ "flavor_id" : "8f2e696c-a9c1-30bd-af90-25522bc67606", "node_number" : 1} 扩容按需实例的节点,实例有多个组,需要扩容的节点数量为1。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/enlarge{ "flavor_id" : "8f2e696c-a9c1-30bd-af90-25522bc67606", "group_id" : "f080abf2010d45118068c28c8958f5fcgr09", "node_number" : 1} 扩容包周期实例的节点,需要扩容的节点数量为1,自动从账户余额中支付。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/enlarge{ "flavor_id" : "8f2e696c-a9c1-30bd-af90-25522bc67606", "node_number" : 1, "is_auto_pay" : true, "available_zones": ["az1xahz" ]}
  • 响应示例 状态码: 200 ok { "instanceId" : "28e8841d0b9c4f6a9a30742ee60e1068in09", "instanceName" : "ddm-fb88-test", "jobId" : "1eb697c0-1842-43a3-8671-f562d0385cb9"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 flavor_id 是 String 当前进行节点扩容的DDM实例底层虚拟机规格ID。 node_number 是 Integer 需要扩容的节点个数。 group_id 否 String 组ID,指定当前进行节点扩容的组。当实例的组大于1时,必填。 is_auto_pay 否 Boolean 变更包年包月实例规格时可指定,表示是否自动从账户中支付,此字段不影响自动续订的支付方式。 true,表示自动从账户中支付。 false,表示手动从账户中支付,默认为该方式。 available_zones 否 Array of strings 可用区Code,仅包年包月实例传递该参数,个数需与node_number一致。请参见地区和终端节点。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 user 是 UpdateUserDetailReq object DDM实例账号相关信息的集合。 表4 UpdateUserDetailReq 参数 是否必选 参数类型 描述 base_authority 否 Array of strings DDM实例账号的基础权限,默认值为原DDM账号权限。 取值为:CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT 枚举值: CREATE DROP ALTER INDEX INSERT DELETE UPDATE SELECT description 否 String DDM实例账号的描述信息,长度不能超过256个字符。 默认值为空。 最大长度:256 databases 否 Array of UpdateUsersDatabases objects DDM实例账号相关信息的集合。 表5 UpdateUsersDatabases 参数 是否必选 参数类型 描述 name 否 String 逻辑库名称,不区分大小写,databases和name字段必须同时缺失或者同时存在。 默认值为空。
  • 请求示例 修改账号权限为SELECT,关联的逻辑库为db_7350。 PUT https://{endpoint}/v1/{project_id}/instances/{instance_id}/users/{username}{ "user" : { "base_authority" : [ "SELECT" ], "description" : "test11", "databases" : [ { "name" : "db_7350" } ] }}
  • 响应示例 状态码: 200 OK { "name" : "ddmtest"} 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001"} 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412"}
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 name String DDM实例账号名称。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 在构造请求中以调用获取用户Token接口为例说明了如何调用API。 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 123 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projectsContent-Type: application/jsonX-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
  • 概述 欢迎使用 分布式数据库 中间件(Distributed Database Middleware,简称DDM),本文档提供了分布式数据库中间件API的描述、语法、参数说明及样例等内容。 在调用分布式数据库中间件API之前,请确保已经充分了解分布式数据库中间件相关概念。 您可以使用本文档提供API进行相关操作,如创建、修改、查询、变更等。 DDM服务持续增加新的功能,将不可避免对现有接口有所调整(如增加响应参数),本接口文档将及时刷新内容。 为了减少接口变更带来的影响,除了DDM服务自身尽量做到接口向下兼容的同时,您在使用过程中,应当接受出现返回内容(JSON格式)含有未使用的参数和值的现象,即能够正常忽略未使用的参数和值。 父主题: 使用前必读
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全