为了帮助您快速使用腾讯云 mongodb API,这里给出一个使用示例。
本实例展示如何创建一个实例:首先查询实例购买规格;然后查询创建需要的费用,通过创建接口创建实例;最后,通过订单查询接口,查询实例创建进度。
1. 查询可创建实例规格
在创建实例前,我们需要先查询能够创建的实例规格, 可以通过查询可创建实例规格接口查询。
查询可创建规格(支持可用区、配置自定义)接口输入参数如下:
参数名称 | 是否必选 | 类型 | 描述 | 取值 |
---|---|---|---|---|
zoneIds.n | 否 | String | 可用区ID组成的数组,数组下标从0开始, 若不传此参数将返回所有区域产品信息 | 100002 |
其中,可用区定义如下:
可用区 | zoneId |
---|---|
广州一区 | 100001 |
广州二区 | 100002 |
广州三区 | 100003 |
上海一区 | 200001 |
香港一区 | 300001 |
多伦多一区 | 400001 |
北京一区 | 800001 |
查询可创建规格(支持可用区、配置自定义)接口的返回值是各个可用区下可创建实例的配置信息, 以返回值中广州二区实例配置为例,各个字段解释如下:
参数名称 | 类型 | 描述 |
---|---|---|
region | String | 区域ID,详见公共请求参数 |
isSupportVpc | Bool | 是否支持私有网络,其值包括:true和false |
types | Object | 支持的实例规格内容 |
其中,types 表示支持的实例规格内容,其参数构成如下:
参数名称 | 类型 | 描述 |
---|---|---|
typeId | String | 实例类型英文名称。 GIO:高IO版;TGIO:高IO万兆 |
replicationNodeNum | Array | 副本集节点数,暂时只支持节点数为2、3 |
memory | Int | 实例内存大小,每一个内存值对应一个可选的磁盘大小范围,单位:MB |
volumeMax | Int | 选定内存后,实例硬盘大小可选的最大值,单位:GB |
volumeMin | Int | 选定内存后,实例硬盘大小可选的最小值,单位:GB |
volumeStep | Int | 选定内存后,实例硬盘大小的步长,单位:GB; 创建实例时,硬盘(volume)的取值是:volume= volumeMin + volumeStep * n; 同时 volumeMin <= volume <= volumeMax |
version | Array | 可支持的数据库版本号,例如 MONGO_3_MMAP、MONGO_3_WT |
结合公共请求参数和接口请求参数,最终得到的请求形式如下:
https://mongodb.api.qcloud.com/v2/index.php?
Action=DescribeMongoDBProduct
&SecretId=AKIDVxZ0PsvtxxxqkeTMFCu7z1
&Signature=eSCz5paiDrXsdifc0Eq0GEihzsI%3D
&Nonce=23284
&Timestamp=1468329994
&Region=gz
&zoneIds.0=100002
上述请求的返回结果如下:
{
"code": 0,
"message": "",
"codeDesc": "Success",
"data": {
"timeSpan": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
24,
36
],
"timeUnit": "m",
"goodsDescription": {
"100002": {
"region": "gz",
"isSupportVpc": true,
"types": [
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 2048,
"volumeMax": 250,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 4096,
"volumeMax": 250,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 6144,
"volumeMax": 250,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 8192,
"volumeMax": 500,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 12288,
"volumeMax": 500,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 16384,
"volumeMax": 500,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 24576,
"volumeMax": 500,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 32768,
"volumeMax": 500,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 49152,
"volumeMax": 750,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 61440,
"volumeMax": 1000,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "GIO",
"replicationNodeNum": [
2,
3
],
"memory": 65536,
"volumeMax": 1000,
"volumeMin": 25,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 4096,
"volumeMax": 300,
"volumeMin": 50,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 8192,
"volumeMax": 300,
"volumeMin": 100,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 16384,
"volumeMax": 600,
"volumeMin": 200,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 32768,
"volumeMax": 1200,
"volumeMin": 400,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 65536,
"volumeMax": 4000,
"volumeMin": 750,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 131072,
"volumeMax": 6000,
"volumeMin": 1500,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 245760,
"volumeMax": 6000,
"volumeMin": 1500,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
},
{
"typeId": "CY",
"replicationNodeNum": [
2,
3
],
"memory": 524288,
"volumeMax": 6000,
"volumeMin": 4000,
"volumeStep": 5,
"version": [
"MONGO_3_MMAP",
"MONGO_3_WT"
]
}
]
}
}
}
}
2. 查询实例价格(包年包月)
创建副本集实例会扣除涉及的费用,可以通过查询实例价格(包年包月)接口查询涉及的费用。 我们这里假设购买一个广州二区高IO版实例, 查询价格的输入参数如下:
参数名称 | 是否必选 | 类型 | 描述 | 取值 |
---|---|---|---|---|
operation | 是 | String | 必须填newmongodb,表示新购实例 | newmongodb |
zoneId | 是 | Int | 可用区ID,请使用查询可创建实例规格接口获取可创建的可用区 | 100002 |
typeId | 是 | String | 实例类型英文名称。 GIO:高IO版;TGIO:高IO万兆 | GIO |
memory | 是 | Int | 实例内存大小,每一个内存值对应一个可选的磁盘大小范围,单位:MB | 8192 |
diskSize | 是 | Int | 实例磁盘大小,单位:GB | 245 |
secondaryNum | 是 | Int | 副本集实例的从节点个数,暂时只支持节点数为1、2 | 2 |
version | 是 | Int | 数据库版本号,例如 MONGO_3_MMAP、MONGO_3_WT | MONGO_3_MMAP |
goodsNum | 是 | Int | 一次购买的实例数 | 1 |
period | 是 | Int | 购买时长, 单位:月, 取值范围 [1,2,3,4,5,6,7,8,9,10,11,12,24,36] | 1 |
结合公共请求参数和接口请求参数,最终得到的请求形式如下:
https://mongodb.api.qcloud.com/v2/index.php?
Action=InquiryMongoDBReplSetPrice
&Timestamp=1468328627
&Nonce=51897
&SecretId=AKIDVxZ0PsvtxxxqkeTMFCu7z1
&Signature=u34AneL09yCx50BwrUZtibiHxNw%3D
&Region=gz
&operation=newmongodb
&zoneId=100002
&typeId=GIO
&memory=8192
&diskSize=245
&secondaryNum=2
&version=MONGO_3_MMAP
&goodsNum=1
&period=1
从返回值知道, 购买上面规格的实例, 价格合计 188800 分(人民币)
{
"code": 0,
"message": "",
"codeDesc": "Success",
"data": {
"price": 188800
}
}
3. 创建副本集实例
接下来,我们按照上面的规格,调用创建实例(包年包月)接口, 输入参数如下:
参数名称 | 是否必选 | 类型 | 描述 | 取值 |
---|---|---|---|---|
zoneId | 是 | Int | 可用区ID,请使用查询可创建实例规格接口获取可创建的可用区 | 100002 |
typeId | 是 | String | 实例类型英文名称。 GIO:高IO版;TGIO:高IO万兆 | GIO |
memory | 是 | Int | 实例内存大小,每一个内存值对应一个可选的磁盘大小范围,单位:MB | 4096 |
diskSize | 是 | Int | 实例磁盘大小,单位:GB | 30 |
secondaryNum | 是 | Int | 复制集从节点个数,暂时只支持节点数为1、2 | 2 |
version | 是 | Int | 数据库版本号,例如 MONGO_3_MMAP、MONGO_3_WT | MONGO_3_MMAP |
goodsNum | 是 | Int | 一次购买的实例数 | 1 |
period | 是 | Int | 购买时长, 单位:月, 取值范围 [1,2,3,4,5,6,7,8,9,10,11,12,24,36] | 1 |
password | 是 | String | 实例密码,密码规则:1.长度为8-16个字符;2:至少包含字母、数字和字符(!@#%^())中的两种 | 49A2d!e@f12e |
vpcId | 否 | Int | vpc网络ID, 如果是基础网络, vpcId=0, vpc网络下,取值以查询私有网络列表 返回的vpcid为准 | 0 |
subnetId | 否 | Int | 基础网络下, subnetId无效, vpc子网下,取值以查询私有网络列表 返回的subnetid为准 | 0 |
projectId | 否 | Int | 项目id,取值以用户账户>用户账户相关接口查询>项目列表返回的projectId为准 | 0 |
结合公共请求参数和接口请求参数,最终得到的请求形式如下:
https://mongodb.api.qcloud.com/v2/index.php?
Action=CreateMongoDBReplSet
&Timestamp=1468328920
&Nonce=27412
&SecretId=AKIDVxZ0PsvtxxxqkeTMFCu7z1
&Signature=4Dvpkk1bJov%2FUd%2FElWjAHfJaoD8%3D
&zoneId=100002
&typeId=GIO
&memory=4096
&diskSize=30
&secondaryNum=2
&version=MONGO_3_MMAP
&goodsNum=1
&period=1
&password=49A2d!e@f12e
从返回值知道, 购买上面规格的实例对应订单号为3373037,可以通过查询订单详情接口查询该订单的详情
{
"code": 0,
"message": "",
"codeDesc": "Success",
"data": {
"dealId": "3373037"
}
}
4. 查询订单详情
创建实例后, 可以使用dealId返回值到 查询订单详情 接口查询订单详情
参数名称 | 是否必选 | 类型 | 描述 | 取值 |
---|---|---|---|---|
dealIds.n | 是 | String | 订单号组成的数组,数组下标从0开始 | 3373037 |
结合公共请求参数和接口请求参数,最终得到的请求形式如下:
https://mongodb.api.qcloud.com/v2/index.php?
Action=DescribeMongodbDealDetail
&Timestamp=1468329117
&Nonce=40727
&SecretId=AKIDVxZ0PsvtxxxqkeTMFCu7z1
&Signature=Y9rMVWyvjoijSl6zJxMW822edGk%3D
&dealIds.0=3373037
对应输出如下:
{
"code": 0,
"message": "",
"codeDesc": "Success",
"details": [
{
"dealId": "3373037",
"dealName": "20170206121420",
"zoneId": 100002,
"goodsNum": 1,
"creater": "3374998458",
"creatTime": "2017-02-06 14:07:46",
"overdueTime": "2017-02-21 14:07:46",
"endTime": "2017-02-06 14:11:54",
"status": 4,
"price": 72200,
"goodsDetail": {
"memSize": 4096,
"disksize": 30,
"typeId": "GIO",
"clusterType": "ReplSet",
"secondaryNum": 2,
"zoneId": 100002,
"mongoVersion": "MONGO_3_MMAP",
"timeSpan": 1,
"timeUnit": "m",
"SerialIds": [
"cmgo-6ozqe0uh"
]
}
}
]
}
查询订单详情接口返回值 details 表示订单详情数组,其各字段含义如下:
参数名称 | 类型 | 描述 |
---|---|---|
details.dealId | String | 短订单号ID,调用云API时使用此ID |
details.dealName | String | 长订单号ID,反馈订单问题给官方客服使用此ID |
details.zoneId | Int | 可用区ID |
details.goodsNum | Int | 订单关联的实例数 |
details.creater | String | 创建订单的用户uin |
details.creatTime | String | 订单创建时间 |
details.overdueTime | String | 订单过期时间 |
details.endTime | String | 订单完成时间 |
details.status | Int | 订单状态 1:未支付 2:已支付,未发货 3:发货中 4:发货成功 5:发货失败 6:已退款 7:已关闭订单 8:订单过期 9:订单已失效 10:产品已失效 11:代付拒绝 12:支付中 |
details.price | Int | 订单实际总价,单位:分 |
details.goodsDetail | Object | 订单关联的商品详情 |
创建实例时返回的goodsDetail:
参数名称 | 类型 | 描述 |
---|---|---|
memSize | int | 实例的内存容量,单位:MB |
disksize | int | 实例的磁盘大小,单位:GB |
typeId | String | 实例类型英文名称。 GIO:高IO版;TGIO:高IO万兆 |
clusterType | Array | 实例集群类型,目前仅为复制集 |
secondaryNum | Array | 复制集从节点个数,暂时只支持节点数为1、2 |
zoneId | Array | 可用区ID |
mongoVersion | Array | 数据库版本号,例如 MONGO_3_MMAP、MONGO_3_WT |
timeSpan | Array | 实例的时长,单位以timeUnit返回为准 |
timeUnit | Array | 实例时长单位,m:月;d:天 |
SerialIds | Array | 实例ID的数组 |
续费实例时返回的goodsDetail:
参数名称 | 类型 | 描述 |
---|---|---|
curDeadline | String | 续费前,实例的到期时间 |
timeSpan | int | 续费时长,单位以timeUnit返回为准 |
timeUnit | String | 续费时长的单位,m:月;d:天 |
SerialIds | Array | 实例ID的数组 |
升级实例时返回的goodsDetail:
参数名称 | 类型 | 描述 |
---|---|---|
curDeadline | String | 实例的到期时间 |
newMemsize | int | 升级后实例的内存容量,单位:MB |
newDisksize | int | 升级后实例的磁盘容量,单位:GB |
oldMemsize | int | 升级前实例的内存容量,单位:MB |
oldDisksize | int | 升级前实例的磁盘容量, 单位:GB |
SerialIds | Array | 实例ID的数组 |