华为云用户手册

  • 概述 欢迎使用 数据复制服务 (Data Replication Service,简称DRS)。数据复制服务是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。数据复制服务是通过创建任务,以任务作为数据库迁移的导向。 您可以使用本文档提供的API对数据复制任务进行相关操作,如创建、获取详情、获取列表、删除等。支持的全部操作请参见API概览。 在调用数据复制服务API之前,请确保已经充分了解数据复制服务的相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 状态码 状态码如表1所示: 表1 状态码 状态码 编码 错误码说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 200 OK 请求成功。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 调用API获取项目ID 项目ID还可通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{endpoint}/v3/projects/”,其中{endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-xianhz-1", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 响应参数 状态码: 200 表8 响应Body参数 参数 参数类型 描述 results Array of objects 批量数据加工响应列表。 详情请参见表9。 count integer 总数。 表9 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 状态。取值: success failed error_code String 错误码。 error_msg String 错误信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 指定类型为application/json。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 X-Language 否 String 请求语言类型。 缺省值:en-us 取值: en-us zh-cn 表3 请求Body参数 参数 是否必选 参数类型 描述 jobs 是 Array of objects 批量数据加工规则请求列表。 详情请参见表4。 表4 jobs字段数据结构说明 参数 是否必选 参数类型 描述 job_id 否 String 任务ID。 object_info 否 Array of objects 对象信息,生成加工规则时需要填写。 详情请参见表5。 transformation_info 是 Object 加工信息。 详情请参见表6 config_transformation 否 Object 配置信息,如果存在多张关联表,请生成多条配置规则。满足配置条件的数据将暂存到缓存中,在数据过滤的场景进行使用。 配置的库名和表名支持数字、字母和下划线。 配置的列名、主键、索引,请确保与源库配置表的字段名保持大小写一致。 详情请参见表7。 表5 object_info字段数据结构说明 参数 是否必选 参数类型 描述 id 否 String 数据库名称和数据库表名称,例如格式为lxl_test1-*-*-test_1,其中lxl_test1为数据库名称,test_1为表名称。 select 否 String 是否选择高级配置,值为true。 表6 transformation_info字段数据结构说明 参数 是否必选 参数类型 描述 transformation_type 是 String 生成加工规则值为contentConditionalFilter。 生成配置规则值为configConditionalFilter。 取值: contentConditionalFilter configConditionalFilter value 是 String 过滤条件,生成加工规则值为sql条件语句,生成配置规则值为config。长度限制256。 表7 config_transformation字段数据结构说明 参数 是否必选 参数类型 描述 db_table_name 是 String 库名.表名,例如格式为lxl_test1.test_1,其中lxl_test1为库名,test_1为表名。 db_name 是 String 库名。长度限制256。 table_name 是 String 表名。长度限制256。 col_names 是 String 列名。长度限制256。 prim_key_or_index 是 String 主键或唯一索引。长度限制256。 indexs 是 String 优化查询所需的索引。长度限制256。 values 是 String 过滤条件。长度限制256。
  • DRS授权分类 “√”表示支持,“x”表示暂不支持。 表1 任务功能 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 批量创建任务 POST /v3/{project_id}/jobs/batch-creation drs:migrationJobs:create(创建实例需要在项目上配置 RDS ReadOnlyAccess、VPC FullAccess、 SMN FullAccess权限。) √ √ 批量结束和删除任务 DELETE /v3/{project_id}/jobs/batch-jobs drs:migrationJobs:delete(结束和删除实例需要在项目上配置 RDS ReadOnlyAccess、VPC FullAccess、SMN FullAccess权限。) √ √ 批量测试连接 POST /v3/{project_id}/jobs/batch-connection drs:migrationJobs:connect(测试连接需要在项目上配置 VPC FullAccess权限。) √ √ 批量数据库对象选择信息 PUT /v3/{project_id}/jobs/batch-select-objects drs:migrationJobs:select(对象选择信息需要在项目上配置 RDS FullAccess、DAS FullAccess) √ √ 批量查询rpo和rto POST /v3/{project_id}/jobs/batch-rpo-and-rto drs:dataGuardJob:list √ √ 批量主备倒换 POST /v3/{project_id}/jobs/batch-switchover drs:disasterRecoveryJob:switchover √ √ 批量测试连接-集群模式 POST /v3/{project_id}/jobs/cluster/batch-connection drs:migrationJobs:connect(测试连接需要在项目上配置 VPC FullAccess权限。) √ √ 批量预检查 POST /v3/{project_id}/jobs/batch-precheck drs:migrationJob:action √ √ 批量查询预检查结果 POST /v3/{project_id}/jobs/batch-precheck-result drs:migrationJob:get √ √ 批量设置任务限速 PUT /v3/{project_id}/jobs/batch-limit-speed drs:migrationJobs:update √ √ 批量获取数据库参数 POST /v3/{project_id}/jobs/batch-get-params drs:databaseParameters:get √ √ 批量续传/重试 POST /v3/{project_id}/jobs/batch-retry-task drs:migrationJob:action √ √ 批量暂停任务 POST /v3/{project_id}/jobs/batch-starting drs:migrationJob:action √ √ 批量修改任务 PUT /v3/{project_id}/jobs/batch-modification drs:migrationJob:modify √ √ 批量修改源库/目标库密码 PUT /v3/{project_id}/jobs/batch-modify-pwd drs:migrationJobs:update √ √ 批量设置definer POST /v3/{project_id}/jobs/batch-replace-definer drs:migrationJob:updateJobConfig √ √ 批量创建对比任务 POST /v3/{project_id}/jobs/batch-create-compar drs:migrationCompareJob:create √ √ 批量查询对比结果 POST /v3/{project_id}/jobs/batch-compare-result drs:CompareJob:getResult √ √ 批量查询任务进度 POST /v3/{project_id}/jobs/batch-progress drs:migrationJobs:getProgress √ √ 查询租户任务列表 POST /v3/{project_id}/jobs DRS ReadOnlyAccess √ √ 查询容灾监控数据 POST /v3/{project_id}/jobs/disaster-recovery-monitoring-data drs:disasterRecoveryJob:get √ √ 批量查询灾备初始化进度 POST /v3/{project_id}/jobs/batch-struct-process drs:disasterRecoveryJob:get √ √ 批量查询灾备初始化对象详情 POST /v3/{project_id}/jobs/{type}/batch-struct-detail drs:disasterRecoveryJob:get √ √ 批量更新迁移用户信息 PUT /v3/{project_id}/jobs/batch-update-user drs:migrationJob:modifyUserInfo √ √ 修改数据库参数 POST /v1.0/{projectId}/jobs/{jobId}/params drs:dataBaseParams:modify(配置 RDS ReadOnlyAccess、VPC FullAccess、SMN FullAccess,DAS FullAccess权限。) √ √ 批量数据加工 POST /v3/{project_id}/jobs/batch-transformation drs:migrationJob:action √ √ 批量启动任务 POST /v3/{project_id}/jobs/batch-starting drs:migrationJob:action √ √ 批量查询任务详情 POST /v3/{project_id}/jobs/batch-detail drs:migrationJob:get √ √ 批量查询任务状态 POST /v3/{project_id}/jobs/batch-status drs:migrationJob:get √ √ 父主题: 权限策略和授权项
  • 支持的授权项 细粒度策略支持的操作与API相对应,授权项列表说明如下: 权限:自定义策略中授权项定义的内容即为权限。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。
  • 任务状态说明 表1 任务状态说明 状态值 状态说明 CREATING 创建中。 CREATE_FAILED 创建失败。 CONFIGURATION 配置中。 STARTJOBING 启动中。 WAITING_FOR_START 等待启动中。 START_JOB_FAILED 任务启动失败。 PAUSING 任务暂停中。 FULL_TRANSFER_STARTED 全量迁移中 灾备场景为初始化。 FULL_TRANSFER_FAILED 全量迁移失败 灾备场景为初始化失败。 FULL_TRANSFER_COMPLETE 全量迁移完成 灾备场景为初始化完成。 INCRE_TRANSFER_STARTED 增量迁移中 灾备场景为灾备中。 INCRE_TRANSFER_FAILED 增量迁移失败 灾备场景为灾备异常。 RELEASE_RESOURCE_STARTED 结束任务中。 RELEASE_RESOURCE_FAILED 结束任务失败。 RELEASE_RESOURCE_COMPLETE 已结束。 CHANGE_JOB_STARTED 任务变更中。 CHANGE_JOB_FAILED 任务变更失败。 CHILD_TRANSFER_STARTING 子任务启动中。 CHILD_TRANSFER_STARTED 子任务迁移中。 CHILD_TRANSFER_COMPLETE 子任务迁移完成。 CHILD_TRANSFER_FAILED 子任务迁移失败。 RELEASE_CHILD_TRANSFER_STARTED 子任务结束中。 RELEASE_CHILD_TRANSFER_COMPLETE 子任务已结束。 父主题: 附录
  • 通用请求Http Status Code 正常 表1 正常返回说明 返回值 说明 200 请求成功。 202 异步请求成功提交(任务执行等)。 异常 表2 异常返回说明 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求页面的访问被禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 409 Conflict 由于冲突,请求无法被完成。 413 Request Entity Too Large 请求超过资源配额。 415 Unsupported Media Type 请求头中携带的Content-Type类型不正确,必须为application/json。 422 Unprocessable Entity 请求中的参数或对象不能被正确识别。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 503 Service Unavailable 请求未完成。系统暂时异常。 父主题: 附录
  • 异常请求结果 异常响应要素说明 表1 异常响应要素说明 名称 参数类型 说明 error_code String 接口响应异常时返回的错误编码,详细错误码描述参考错误码。 error_msg String 接口响应异常时返回的错误描述信息。 响应样例 { "error_code": "DRS.M00201", "error_msg": "%s参数为空" } { "error_code": "DRS.M00202", "error_msg": "%s取值不合法" } 父主题: 附录
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 driver_name 是 String JDBC驱动文件名称,name的长度5-64,结尾以.jar结尾。 driver_type 是 String 指定待同步的驱动文件类型。取值范围: db2:DB2 for LUW informix:Informix
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • URI GET /v5/{project_id}/drivers 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页显示的条目数量。默认为10。 offset 否 Integer 偏移量,表示从此偏移量开始查询, offset 大于等于 0。默认为0。 driver_type 是 String 指定待查询的驱动文件类型。取值范围: db2:DB2 for LUW informix:Informix
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Integer 驱动文件总数。 items Array of DriverInfo objects 驱动文件列表。 表5 DriverInfo 参数 参数类型 描述 driver_name String 文件名称。 last_modified String 最后修改时间。 size Integer 文件大小,单位:byte
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 driver_type 是 String 指定待删除的驱动文件类型。取值范围: db2:DB2 for LUW informix:Informix driver_names 是 Array of strings JDBC驱动文件列表,列表长度1-20,driver_name的长度5-64,结尾以.jar结尾。
  • URI POST /v5/{project_id}/driver 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 driver_type 是 String 指定待上传的驱动文件类型。取值范围: db2:DB2 for LUW informix:Informix
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表4 FormData参数 参数 是否必选 参数类型 描述 file 是 File 驱动文件,驱动文件名称长度5-64,以jar结尾,文件名相同会替换远程驱动文件。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 响应示例 状态码: 200 OK { "count" : 1, "ddl_list" : [ { "seqno" : 30, "checkpoint" : "mysql-bin.000006:431;200e3d00-4a57-11ef-8a76-fa163ef2208a:7;200e3d00-4a57-11ef-8a76-fa163ef2208a:1-7", "status" : 1, "ddl_timestamp" : 1721894317000, "ddl_text" : "/* sql from das */ALTER TABLE `test1`.`test1`\n\tADD COLUMN `sex` VARCHAR(32) NULL AFTER `name`", "exe_result" : true, "record_time" : 1721894318544, "clean_time" : 1721897321317 } ] } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 ddl_list Array of DdlAlarmResp objects DDL告警信息列表。 count Integer 列表中的项目总数,与分页无关。 表5 DdlAlarmResp 参数 参数类型 描述 seqno Long 记录唯一序号。 checkpoint String 数据源库位点。 status Integer DDL告警状态。0无告警,1告警中。 ddl_timestamp Long DDL在源库执行时间。 ddl_text String DDL内容。 exe_result Boolean DDL执行结果。false执行失败,true执行成功。 record_time Long 数据记录时间。 clean_time Long DDL告警清理时间。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • URI GET /v5/{project_id}/jobs/{job_id}/ddl 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量,默认值为0,表示查询该偏移量后面的记录。 limit 否 Integer 查询返回记录的数量限制.默认值为10。 start_seq_no 否 Long DDL序列起始值。 end_seq_no 否 Long DDL序列结束值。 status 否 Integer DDL状态,0为无告警,1为告警中。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 请求示例 修改指定连接示例。 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/connections/835e1d79-24ac-411d-a1c8-22c000280659 { "name" : "DRS-mysql-newName", "type" : "mysql", "description" : "description-new", "endpoint" : { "endpoint_name" : "mysql", "ip" : "127.0.0.1", "db_port" : "3306", "db_user" : "root", "db_password" : "password" }, "vpc" : { }, "ssl" : { "ssl_link" : false }, "enterprise_project_id" : "0" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 否 String 连接名称。 db_type 否 String 数据库类型。 config 否 ConnectionConfig object 连接配置,不同类型的连接配置不同。 description 否 String 连接描述。 endpoint 否 BaseEndpoint object 数据库连接基本信息。 vpc 否 CloudVpcInfo object 数据库实例所在VPC,子网,安全组等信息。 ssl 否 EndpointSslConfig object 数据库SSL证书信息。 cloud 否 CloudBaseInfo object 数据库实例所在Region,项目等信息。 表4 ConnectionConfig 参数 是否必选 参数类型 描述 driver_name 否 String 驱动程序名称。 表5 BaseEndpoint 参数 是否必选 参数类型 描述 id 否 String 数据库信息ID。 endpoint_name 是 String 数据库场景类型。取值: oracle:云下自建Oracle数据库。 ecs_oracle:华为云E CS 自建Oracle数据库。 cloud_gaussdbv5:华为云数据库 GaussDB 分布式。 mysql:他云/本地自建MySQL数据库。 ecs_mysql:华为云ECS自建MySQL数据库。 cloud_mysql:华为云数据库RDS for MySQL。 redis:云下自建Redis数据。 ecs_redis:华为云ECS自建Redis数据。 rediscluster:云下自建Redis集群数据库。 ecs_rediscluster:华为云ECS自建Redis集群数据库。 cloud_gaussdb_redis:华为云数据库GeminiDB Redis。 postgresql: 云下自建PostgreSQL数据库。 ecs_postgresql: 华为云ECS自建PostgreSQL数据库。 cloud_postgresql: 华为云数据库RDS for PostgreSQL。 mongodb: 云下自建MongoDB数据库。 ecs_mongodb: 华为云ECS自建MongoDB数据库。 cloud_mongodb: 华为云文档数据库服务DDS。 ip 否 String 数据库IP。约束:- 数据库为自建MongoDB时,数据库IP与端口之间用“:”英文冒号拼接,多个值之间请用“,”英文逗号隔开,最多支持填写3个IP地址或 域名 。- 数据库为DDS实例时,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔。- 数据库为Redis集群时,请填写源端Redis集群所有分片的IP地址和对应端口,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔,并且推荐填写集群分片的Slave节点的IP地址。最多支持填写32个IP地址或域名,多个值之间请用英文逗号隔开。示例:- MySQL:ip- MongoDB:ip:port,ip:port,ip:port- DDS:ip:port,ip:port - Redis集群:ip:port,ip:port db_port 否 String 数据库端口。 约束:输入范围为1-65535之间的整数。 db_user 是 String 数据库用户名。 db_password 是 String 数据库密码。 instance_id 否 String 华为云数据库实例ID。 instance_name 否 String 华为云数据库实例名称。 db_name 否 String 指定数据库名称。例如: oracle:serviceName.orcl。 source_sharding 否 Array of BaseEndpoint objects 物理源库信息。 表6 CloudVpcInfo 参数 是否必选 参数类型 描述 vpc_id 是 String 数据库实例所在的虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 subnet_id 是 String 数据库实例所在子网ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 security_group_id 否 String 数据库实例所在的安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 表7 EndpointSslConfig 参数 是否必选 参数类型 描述 ssl_link 否 Boolean 是否SSL安全连接。如果数据库启用了SSL安全连接,参数值为true。 ssl_cert_name 否 String SSL证书名字。 ssl_cert_key 否 String SSL证书内容,用base64加密。 ssl_cert_check_sum 否 String SSL证书内容checksum值,后端校验,源库安全连接必选。 ssl_cert_password 否 String SSL证书密码,证书文件后缀为.p12时必填。 表8 CloudBaseInfo 参数 是否必选 参数类型 描述 region 是 String 区域ID,当数据库实例类型为ecs(华为云ECS自建数据库),cloud(华为云数据库)时为必填项。获取方法请参见地区和终端节点。 注意:当该Region下存在子项目时,Region ID为区域项目ID与子项目ID,由“_”下划线拼接,例如:cn-north-4_abc。 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 az_code 否 String 数据库所在可用分区(AZ)名称。
  • 响应示例 状态码: 200 OK { "connections" : [ { "name" : "DRS-mysql", "type" : "mysql", "endpoint" : { "endpoint_name" : "mysql", "ip" : "127.0.0.1", "db_port" : "3306", "db_user" : "root" }, "description" : "description", "connection_id" : "835e1d79-24ac-411d-a1c8-22c000280659", "ssl" : { "ssl_link" : false }, "create_time" : 1716879012121, "enterprise_project_id" : "0" } ], "count" : 1 } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • URI GET /v5/{project_id}/connections 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 connection_id 否 String 连接ID。 db_type 否 String 连接类型。 mysql oracle postgresql mongodb name 否 String 连接名称,忽略大小写。 inst_id 否 String 云上数据库实例ID。 ip 否 String 连接IP。 description 否 String 连接描述。 create_time 否 String 时间区间用“,”分割。示例:2024-05-17T07:46:00.414Z,2024-05-20T07:46:00.999Z。 enterprise_project_id 否 String 企业项目ID。 offset 否 Integer 偏移量,默认值为0,表示查询该偏移量后面的记录。 limit 否 Integer 查询返回记录的数量限制.默认值为10。 fetch_all 否 Boolean 值为“true”时会使得offset和limit参数失效并返回所有记录。 sort_key 否 String 返回结果按该关键字排序,默认为“created_at”。 sort_dir 否 String 降序或升序(分别对应desc和asc,默认为“desc”)。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 connections Array of ConnectionResp objects 连接信息列表。 count Integer 列表中的项目总数,与分页无关。 表5 ConnectionResp 参数 参数类型 描述 connection_id String 连接ID。 name String 连接名称。 create_time Long 连接创建时间,格式为时间戳。 db_type String 连接类型。 config ConnectionConfig object 连接的配置项。 endpoint BaseEndpoint object 数据库基本信息。 vpc CloudVpcInfo object 数据库实例所在VPC,子网,安全组等信息。 ssl EndpointSslConfig object 数据库SSL证书信息。 表6 ConnectionConfig 参数 参数类型 描述 driver_name String 驱动程序名称。 表7 BaseEndpoint 参数 参数类型 描述 id String 数据库信息ID。 endpoint_name String 数据库场景类型。取值: oracle:云下自建Oracle数据库。 ecs_oracle:华为云ECS自建Oracle数据库。 cloud_gaussdbv5:华为云数据库GaussDB分布式。 mysql:他云/本地自建MySQL数据库。 ecs_mysql:华为云ECS自建MySQL数据库。 cloud_mysql:华为云数据库RDS for MySQL。 redis:云下自建Redis数据。 ecs_redis:华为云ECS自建Redis数据。 rediscluster:云下自建Redis集群数据库。 ecs_rediscluster:华为云ECS自建Redis集群数据库。 cloud_gaussdb_redis:华为云数据库GeminiDB Redis。 postgresql: 云下自建PostgreSQL数据库。 ecs_postgresql: 华为云ECS自建PostgreSQL数据库。 cloud_postgresql: 华为云数据库RDS for PostgreSQL。 mongodb: 云下自建MongoDB数据库。 ecs_mongodb: 华为云ECS自建MongoDB数据库。 cloud_mongodb: 华为云文档数据库服务DDS。 ip String 数据库IP。约束:- 数据库为自建MongoDB时,数据库IP与端口之间用“:”英文冒号拼接,多个值之间请用“,”英文逗号隔开,最多支持填写3个IP地址或域名。- 数据库为DDS实例时,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔。- 数据库为Redis集群时,请填写源端Redis集群所有分片的IP地址和对应端口,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔,并且推荐填写集群分片的Slave节点的IP地址。最多支持填写32个IP地址或域名,多个值之间请用英文逗号隔开。示例:- MySQL:ip- MongoDB:ip:port,ip:port,ip:port- DDS:ip:port,ip:port - Redis集群:ip:port,ip:port db_port String 数据库端口。 约束:输入范围为1-65535之间的整数。 db_user String 数据库用户名。 db_password String 数据库密码。 instance_id String 华为云数据库实例ID。 instance_name String 华为云数据库实例名称。 db_name String 指定数据库名称。例如: oracle:serviceName.orcl。 source_sharding Array of BaseEndpoint objects 物理源库信息。 表8 CloudVpcInfo 参数 参数类型 描述 vpc_id String 数据库实例所在的虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 subnet_id String 数据库实例所在子网ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 security_group_id String 数据库实例所在的安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 表9 EndpointSslConfig 参数 参数类型 描述 ssl_link Boolean 是否SSL安全连接。如果数据库启用了SSL安全连接,参数值为true。 ssl_cert_name String SSL证书名字。 ssl_cert_key String SSL证书内容,用base64加密。 ssl_cert_check_sum String SSL证书内容checksum值,后端校验,源库安全连接必选。 ssl_cert_password String SSL证书密码,证书文件后缀为.p12时必填。 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 period_type 是 String 订单类型,取值: 2:包月 3:包年 period_num 是 Integer 订单周期数 is_auto_renew 是 Boolean 是否自动续费 is_auto_pay 是 Boolean 是否自动支付
共100000条