更新时间:2024-10-21 GMT+08:00
分享

创建连接

功能介绍

创建单个连接,该连接可以为线下自建库或云上RDS等,目前支持的数据库引擎包括MySQL、PostgreSQL、Oracle和MongoDB。

URI

POST /v5/{project_id}/connections

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户在某一Region下的Project ID。

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

请求参数

表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

连接名称。 约束:连接名称在4位到50位之间,不区分大小写,可以包含字母、数字、中划线或下划线,不能包括其他特殊字符。

db_type

String

连接类型,包含:

  • mysql
  • postgresql
  • mongodb
  • oracle

config

ConnectionConfig object

连接的配置项,不同类型的连接配置项不同。

description

String

描述,长度不能超过255个字符。

endpoint

BaseEndpoint object

数据库连接基本信息。

vpc

CloudVpcInfo object

数据库实例所在VPC,子网,安全组等信息。

ssl

EndpointSslConfig object

数据库SSL证书信息。

cloud

CloudBaseInfo object

数据库实例所在Region,项目等信息。

enterprise_project_id

String

企业项目ID。

表4 ConnectionConfig

参数

是否必选

参数类型

描述

driver_name

String

驱动程序名称。

表5 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

物理源库信息。

表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

表9 响应Body参数

参数

参数类型

描述

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证书信息。

enterprise_project_id

String

企业项目ID。

description

String

描述。

表10 ConnectionConfig

参数

参数类型

描述

driver_name

String

驱动程序名称。

表11 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

物理源库信息。

表12 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接口查询,具体操作可参考查询安全组列表。

表13 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

表14 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

请求示例

创建一个MySQL连接示例。

https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/connections
{
  "name" : "DRS-mysql",
  "db_type" : "mysql",
  "description" : "description",
  "endpoint" : {
    "endpoint_name" : "mysql",
    "ip" : "127.0.0.1",
    "db_port" : "3306",
    "db_user" : "root",
    "db_password" : "password"
  },
  "ssl" : {
    "ssl_link" : false
  },
  "enterprise_project_id" : "0"
}

响应示例

状态码: 200

OK

{
  "name" : "DRS-mysql",
  "db_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"
}

状态码: 400

Bad Request

{
  "error_code" : "DRS.10010065",
  "error_msg" : "Connection manager name is already exists."
}

状态码

状态码

描述

200

OK

400

Bad Request

错误码

请参见错误码

相关文档