更新时间:2024-09-09 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,项目等信息。

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

表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",
  "type" : "mysql",
  "description" : "description",
  "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"
}

响应示例

状态码: 200

OK

{
  "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"
}

状态码: 400

Bad Request

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

状态码

状态码

描述

200

OK

400

Bad Request

错误码

请参见错误码

相关文档