API接口说明

创建实例

请求方法 API
POST /api/v1/instance

创建CRDB实例前,需要选定node节点数、每个节点内存和磁盘大小。node节点申请bcc配额按照用户购买的套餐来申请,master和standby master节点默认固定配额(最小1核CPU、2G内存,随着node节点配额变化,按相应比例改变)来申请。

请求参数

参数名称 参数类型 是否必须 参数描述
backupPolicy Object No 备份策略
1)preferredBackupDays,备份时间,周日为第一天,取值0,格式:"0,1,2,3,5,6"
2)preferredBackupWindow,备份时间窗口,格式:"00:15:00Z-05:15:00Z",使用UTC时间
engine String Yes 1)数据库类型
2)取值范围:CockroachDB
engineVersion String Yes 2.0
instanceExpireTime Datetime Yes deprecated. RDS不保存实例过期时间了
instanceName String No 1)用户自定义实例名;
2)允许小写字母、数字;
3)长度限制为1~32;
instanceClass String Yes 实例硬件套餐名。
cpuCount Int Yes 单个node CPU核数
allocatedMemoryInMB Int Yes 单个node 内存
allocatedStorageInGB Int Yes 单个node 磁盘空间
publiclyAccessible Boolean Yes 是否开放外网访问
1)取值范围:true,false
2)默认不开放外网权限
initialDataReference Object No 初始化数据源(实例克隆)
orderId String Yes 订单号
instanceAmount Int Yes 批量创建RDS实例个数
azone String Yes 可用区名称
vpcId String Yes VPC ID
subnetId Object Yes 子网ID
physicalZone Object No 逻辑可用区和物理机机房对应关系
machineType String Yes bcc:默认;dcc:RDS on DCC
dccHostIds Object No 当machineType为dcc时选
nodeAmount Object Yes 总数最少3个,每个zone的Node节点个数,最少1个

返回参数

参数名称 参数类型 参数描述
instances List 由instance对象组成的数组

请求示例

POST /json-api/v1/instance HTTP/1.1
HOST: crdb.baidu.com
Authorization: bce-auth-v1/rdsak/2014-07-03T06:13:13Z/1800/x-bce-date/{signature}
{
    "orderId": "20180801723123123404501",
    "instanceAmount": 1,
    "instanceParameters": {
        "instanceName": "cockroach-test",
        "engine": "cockroachdb",
        "engineVersion": "2.0",
        "instanceClass": "db1.micro",
        "allocatedMemoryInMB": 1024,
        "allocatedStorageInGB": 10,
        "cpuCount": 3,
        "backupPolicy": {
            "preferredBackupDays": "0,1,2,4,5",
            "preferredBackupWindow": "17:00:00Z-19:00:00Z"
        },
        "publiclyAccessible": true,
        "instanceExpireTime": "2018-05-07T12:00:00Z",
        "azone": "zoneA+zoneB",
        "vpcId": "5439f126-2e13-4e9f-9b97-672ef17e6f0a",
        "subnetId": {
            "zoneA": "5087d05d-3818-4dc6-b87d-8810a921c453",
            "zoneB": "a366faf1-f238-419d-8544-afd3e50bd9dd"
        },
        "nodeAmount": {
            "zoneA": 3,
            "zoneB": 2
        }
    }
}

返回示例

{
    "instances": [
        {
            "instanceId": "rdsnk1h2iwrw1va",
            "instanceName": "cockroach-test",
            "engine": "cockroachdb",
            "engineVersion": "2.0",
            "characterSetName": "utf8",
            "endpoint": {
                "port": 5100,
                "address": "cockroach-test.rdsnk1h2iwrw1va.bj.bce.qa.sandbox.baidu.com",
                "vnetIp": null,
                "inetIp": null
            },
            "instanceClass": "db1.micro",
            "allocatedMemoryInMB": 1024,
            "allocatedStorageInGB": 10,
            "totalStorageInGB": 10,
            "usedStorageInMB": 0,
            "cpuCount": 1,
            "instanceStatus": "creating",
            "lockMode": "unlock",
            "eipStatus": "closed",
            "backupPolicy": {
                "preferredBackupDays": "0,1,2,4,5",
                "preferredBackupWindow": "17:00:00Z-19:00:00Z"
            },
            "publiclyAccessible": false,
            "instanceCreateTime": "2018-08-31T07:51:12Z",
            "instanceExpireTime": "2018-05-07T12:00:00Z",
            "sourceInstanceId": "",
            "instanceType": "master",
            "region": "bj",
            "sourceRegion": "bj",
            "nodeAmount": 1,
            "azone": "zoneA+zoneB",
            "vpcId": "5439f126-2e13-4e9f-9b97-672ef17e6f0a",
            "superUserFlag": "common",
            "replicationType": "async",
            "onlineStatus": 1,
            "oldInstance": 0,
            "applicationType": "normal",
            "machineType": "bcc"
        }
    ]
}

获取实例列表

请求方法 API
POST /json-api/v1/instance

请求参数

参数名称 参数类型 是否必须 参数描述
公共请求参数 参考 公共请求参数

返回参数

参数名称 参数类型 参数描述
Instances List <instance> 由instance组成的数组
instanceId String 实例ID

Instance参数列表

instanceName String 数据库实例名
engine String 数据库引擎
engineVersion String 数据库引擎版本
characterSetName String 默认字符集
endpoint Object 数据库连接信息
{
//数据库端口
"port": 5100,
//数据库连接地址
"address":
"$instanceName.$instanceId.$engine.crdb.baidu.com"
}
instanceClass String 实例规格
cpuCount Int 实例CPU
allocatedMemoryInMB Int 实例内存
allocatedStorageInGB Int 存储空间
usedStorageInMB Int 已用存储空间
totalStorageInGB Int 总存储空间
instanceStatus String 实例状态
lockMode String 锁定模式
backupPolicy Object 备份策略
{
"preferredBackupDays" : "0,1,2,4,5",
"preferredBackupWindow" : "17:00:00Z-19:00:00Z"
}
1)preferredBackupDays,备份时间,周日为第一天,取值0,格式:"0,1,2,3,5,6"
2)备份时间窗口,格式:"00:15:00Z-05:15:00Z",使用UTC时间
publiclyAccessible Boolean 是否开放外网访问权限
instanceCreateTime Datetime 实例创建时间
instanceExpireTime Datetime 实例到期时间
instanceType String 实例类型
sourceInstanceId String 主实例id,如果为主实例则为空
region String 该实例的区域(bj...)
sourceRegion String 该实例的主实例的区域
superUserFlag String 是否创建super账号(common、super)
azone String 实例的逻辑可用区
vpcId String 实例所属VPC的ID

请求示例

GET /json-api/v1/instance HTTP/1.1
HOST: crdb.baidu.com
Authorization: bce-auth-v1/rdsak/2014-07-03T06:13:13Z/1800/x-bce-date/{signature}

返回实例

HTTP/1.1 200 OK
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
Content-Type: application/json
{
    "instances":[{
        "instanceId"                : "rdsnudjimy0jbig",
        "instanceName"              : "cockroach5100",
        "engine"                    : "cockroach",
        "engineVersion"             : "2.0",
        "endpoint" : {
            "port"    : 3306,
            "address" : "cockroach5100.rdsnudjimy0jbig.mysql.crdb.baidu.com",
            "vnetIp"  : "172.0.0.1",
            "inetIp"  : ""
        },
        "instanceClass"             : "db1.micro",
        "cpuCapacity"             : 1,
        "allocatedStorageInGB"      : 5,
        "totalStorageInGB"      : 25,
        "memoryCapacityInMB"       : 256,
        "usedStorageInMB"           : 1023,
        "instanceStatus"            : "creating",
        "lockMode"                  : "unlock",
        "eipStatus"                 : "available",
        "region"                    : "bj",
        "backupPolicy"              : {
            "preferredBackupDays"   : "0,1,2,4,5",
            "preferredBackupWindow" : "17:00:00Z-19:00:00Z"
        },
        "instanceCreateTime"        : "2016-06-01T12:00:00Z",
        "instanceType"              : "master",
        "sourceInstanceId"          : "",
        "sourceRegion"              : "bj",
        "instanceAmount"            : 1,
        "azone"                     : "zoneB",
        "vpcId"                     : "63696dde-6617-4847-9bde-5a146e8db25a",
        "superUserFlag"             : 0,
        "replicationType"           : "async"
    }]
}

获取实例信息

请求方法 API
GET /json-api/v1/instance/{InstanceId}

请求参数

参数名称 参数类型 是否必须 参数描述
<公共请求参数> 参考 公共请求参数

返回参数

参数名称 参数类型 参数描述
<公共返回参数> 参考 公共返回参数
Instance Object Instance Object

Instance Object详情

参数名称 参数类型 参数描述
instanceId String 实例ID
instanceName String 数据库实例名
instanceClass String 实例规格
allocatedMemoryInMB Int 实例内存
allocatedStorageInGB Int 存储空间
totalStorageInGB Int 总存储空间
usedStorageInMB Int 已用存储空间
engine String 数据库引擎
engineVersion String 数据库引擎版本
characterSetName String 默认字符集
instanceStatus String 实例状态
lockMode String 锁定模式
billingStatus String 需要收费的附加服务状态
publiclyAccessible Boolean 是否开放外网访问权限
eipStatus String 外网访问功能状态
instanceCreateTime Datetime 实例创建时间
instanceExpireTime Datetime 实例到期时间
endpoint Object 数据库连接信息,Endpoint Object
sourceInstanceId String 主实例id,如果为主实例则为空
instanceType String 实例类型
region String 该实例的区域(bj...)
sourceRegion String 该实例的主实例的区域
instanceAmount Int 实例的执行单元数量(主要用于代理实例)
azone String 实例的逻辑可用区
vpcId String 实例所属VPC的ID
subnetId Object 各可用区的子网ID(如果创建时选择了子网)
superUserFlag String 是否创建super账号(common、super)
backupPolicy Object 备份策略
readReplicaNum Int 在同步本实例的副本数量
readReplica List\<String\> 在同步本实例的副本ID列表
topology Object 实例所属数据库集群的拓扑信息 Topology Object

Endpoint Object详情

参数名称 参数类型 参数描述
address String 数据库连接地址
port Int 数据库端口
vnetIp String 数据库连接的IP( 会因为主从切换而变化)
inetIp String 从公网连接数据库的IP( 不会因为主从切换而变化)

BackupPolicy Object详情

参数名称 参数类型 参数描述
backupDays String 以逗号分隔的备份时间,周日为第一天,取值0
举例:"0,1,2,3,5,6"
backupTime String 备份开始时间,使用UTC时间
举例:"17:00:00Z"
persistent Boolean 是否启用了备份数据持久化
expireInDays Int 持久化天数,未启用则为0
freeSpaceInGB Int 免费赠送的存储空间大小,单位为GB

请求示例

GET /json-api/v1/instance/rdsmut9rhom8p3m HTTP/1.1
HOST: crdb.baidu.com
Authorization: bce-auth-v1/rdsak/2014-07-03T06:13:13Z/1800/x-bce-date/{signature}

返回实例

HTTP/1.1 200 OK
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
Content-Type: application/json
{
    "instance": {
        "instanceId": "rdsn0k0wzxncdcp",
        "instanceName": "cockroach-test",
        "engine": "cockroachdb",
        "engineVersion": "2.0",
        "characterSetName": "utf8",
        "endpoint": {
            "port": 5100,
            "address": "cockroach-test.rdsn0k0wzxncdcp.bj.bce.qa.sandbox.baidu.com",
            "vnetIp": "192.168.9.242",
            "inetIp": ""
        },
        "instanceClass": "db1.micro",
        "allocatedMemoryInMB": 1024,
        "allocatedStorageInGB": 10,
        "totalStorageInGB": 10,
        "usedStorageInMB": 93.0859375,
        "cpuCount": "2",
        "instanceStatus": "available",
        "lockMode": "unlock",
        "eipStatus": "closed",
        "backupPolicy": {
            "preferredBackupDays": "0,1,2,4,5",
            "preferredBackupWindow": "17:00:00Z-19:00:00Z"
        },
        "publiclyAccessible": false,
        "instanceCreateTime": "2018-08-30T03:35:42Z",
        "instanceExpireTime": "2018-05-07T12:00:00Z",
        "sourceInstanceId": "",
        "instanceType": "master",
        "region": "bj",
        "sourceRegion": "bj",
        "nodeAmount": "1",
        "azone": "zoneA",
        "vpcId": "54xxxxxx-2e13-4e9f-9b97-672exxxxx6f0a",
        "superUserFlag": "common",
        "replicationType": "async",
        "onlineStatus": "1",
        "oldInstance": "0",
        "applicationType": "normal",
        "machineType": "bcc",
        "rootStorageInGB": "20",
        "subnetId": {
            "zoneA": "50xxxxxd-3818-4dc6-b87d-881xxxxxx453"
        },
        "readReplicaNum": 0,
        "readReplica": [],
        "topology": {
            "rdsproxy": [],
            "master": [
                "rdsn0k0wzxncdcp"
            ],
            "readReplica": []
        }
    }
}

删除实例

请求方法 API
DELETE /json-api/v1/instance/{instanceId}

删除实例,实例的运行数据、库、表记录,日志全部删除。

  1. 实例当前lockMode必须为lockExpiration
  2. 实例删除前先创建一个snapshot
  3. snapshot不删除
  4. 如果实例为只读副本,则只删除该副本

请求参数

参数名称 参数类型 是否必须 参数描述
<公共请求参数> 参考 公共请求参数

返回参数

参数名称 参数类型 参数描述
<公共返回参数> 公共返回参数

请求示例

DELETE /json-api/v1/instance/rdsmxiaozhiwen0 HTTP/1.1
HOST: crdb.baidu.com
Authorization: bce-auth-v1/rdsak/2014-07-03T06:13:13Z/1800/x-bce-date/{signature}

返回实例

HTTP/1.1 200 OK
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
Content-Type: application/json
Content-Length: 0