MongoDB
# MongoDB 公开API目录
# API概览
MongoDB产品提供以下相关API接口。
# 实例
API | 描述 |
---|---|
DescribeZones | 获取云数据库MongoDB支持的站点区域 |
DescribeSpecInfo | 获取某个站点支持的MongoDB产品类型以及规格 |
CreateDBInstance | 创建MongoDB云数据库实例 |
DescribeDBInstances | 获取MongoDB实例列表 |
DeleteDBInstance | 删除MongoDB实例 |
# 错误码
HttpCode | 错误码 | 描述 |
---|---|---|
400 | ArgMissing | 缺少参数错误 |
400 | InvalidParameter | 参数错误 |
400 | BadArgs | 参数错误 |
400 | UnsupportedOperation | 操作不支持 |
404 | ResourceNotFound | 资源不存在 |
409 | ResourceInUse | 资源正在被其他任务占用,操作冲突 |
500 | InternalError | 内部错误 |
500 | CreateOrderExcept | 创建订单异常 |
# 访问地址
地区 | 访问地址 |
---|---|
中国大陆 | cdsapi.capitalonline.net |
亚太地区 | cdsapi-asia.capitalonline.net |
欧美地区 | cdsapi-us.capitalonline.net |
# 1.DescribeZones
Action: DescribeZones
描述: 获取云数据库MongoDB支持的站点区域
请求地址: cdsapi.capitalonline.net/mongodb
请求方法: GET
请求参数:
无
请求示例:
def get_mongodb_Zones():
"""
获取云数据库Mongodb支持的站点区域
"""
action = "DescribeZones"
method = "GET"
param = {
}
url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param)
res = requests.get(url)
result = json.loads(res.content)
result = json.dumps(result) # json格式化
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
返回示例:
{
"Code": "Success",
"Data": [{
"CityId": "3082f45e-306e-11e7-9796-0050569b4d9c",
"CityName": "洛杉矶",
"IsSaling": 1,
"RegionId": "US_LosAngeles_A",
"RegionName": "北美地区",
"SiteName": "洛杉矶1"
}, {
"CityId": "7b98a5d1-306e-11e7-9796-0050569b4d9c",
"CityName": "法兰克福",
"IsSaling": 1,
"RegionId": "EUR_Germany_A",
"RegionName": "欧洲地区",
"SiteName": "德国1"
}, {
"CityId": "8737606f-306d-11e7-9796-0050569b4d9c",
"CityName": "东京",
"IsSaling": 1,
"RegionId": "APAC_Tokyo_A",
"RegionName": "亚太地区",
"SiteName": "东京1"
}, {
"CityId": "27b57297-306d-11e7-9796-0050569b4d9c",
"CityName": "香港",
"IsSaling": 1,
"RegionId": "CN_Hongkong_A",
"RegionName": "亚太地区",
"SiteName": "香港1"
}, {
"CityId": "a8937b00-306d-11e7-9796-0050569b4d9c",
"CityName": "新加坡",
"IsSaling": 1,
"RegionId": "APAC_Singapore_A",
"RegionName": "亚太地区",
"SiteName": "新加坡1"
}, {
"CityId": "5c432e0e-306e-11e7-9796-0050569b4d9c",
"CityName": "阿姆斯特丹",
"IsSaling": 1,
"RegionId": "EUR_Netherlands_A",
"RegionName": "欧洲地区",
"SiteName": "荷兰1"
}, {
"CityId": "154ed19e-306e-11e7-9796-0050569b4d9c",
"CityName": "纽约",
"IsSaling": 1,
"RegionId": "US_NewYork_A",
"RegionName": "北美地区",
"SiteName": "纽约1"
}, {
"CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
"CityName": "北京",
"IsSaling": 1,
"RegionId": "CN_Beijing_B",
"RegionName": "中国大陆",
"SiteName": "北京2"
}, {
"CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
"CityName": "北京",
"IsSaling": 1,
"RegionId": "CN_Beijing_E",
"RegionName": "中国大陆",
"SiteName": "北京5"
}, {
"CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
"CityName": "北京",
"IsSaling": 1,
"RegionId": "CN_Beijing_A",
"RegionName": "中国大陆",
"SiteName": "北京1"
}, {
"CityId": "e48e2312-306d-11e7-9796-0050569b4d9c",
"CityName": "达拉斯",
"IsSaling": 1,
"RegionId": "US_Dallas_A",
"RegionName": "北美地区",
"SiteName": "达拉斯1"
}, {
"CityId": "713d3745-306d-11e7-9796-0050569b4d9c",
"CityName": "台北",
"IsSaling": 1,
"RegionId": "CN_Taipei_A",
"RegionName": "亚太地区",
"SiteName": "台北1"
}, {
"CityId": "123d0d01-306d-11e7-9796-0050569b4d9c",
"CityName": "无锡",
"IsSaling": 1,
"RegionId": "CN_Wuxi_A",
"RegionName": "中国大陆",
"SiteName": "无锡1"
}, {
"CityId": "87fcbbd6-be0a-11e7-9d6b-0242ac110004",
"CityName": "首尔",
"IsSaling": 1,
"RegionId": "APAC_Seoul_A",
"RegionName": "亚太地区",
"SiteName": "首尔1"
}, {
"CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
"CityName": "北京",
"IsSaling": 1,
"RegionId": "CN_Beijing_C",
"RegionName": "中国大陆",
"SiteName": "北京3"
}, {
"CityId": "c11a5abe-3f7e-11e7-86b1-0242ac11000e",
"CityName": "广州",
"IsSaling": 1,
"RegionId": "CN_Guangzhou_A",
"RegionName": "中国大陆",
"SiteName": "广州1"
}, {
"CityId": "b44355d0-65e7-11e7-8ea9-0050569b651c",
"CityName": "上海",
"IsSaling": 1,
"RegionId": "CN_Shanghai_A",
"RegionName": "中国大陆",
"SiteName": "上海1"
}, {
"CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
"CityName": "北京",
"IsSaling": 1,
"RegionId": "",
"RegionName": "中国大陆",
"SiteName": "北京8"
}],
"Message": "Success."
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
Code | string | 状态码 |
Data | dict | 数据 |
CityId | string | 城市编号 |
CityName | string | 城市名称 |
IsSaling | int | 站点是否能购买服务,1:站点支持购买;0:资源不足以下线 |
RegionId | string | 区域编号 |
RegionName | string | 区域名称 |
SiteName | string | 站点名称 |
Message | string | 信息描述 |
# 2.DescribeSpecInfo
Action: DescribeSpecInfo
描述: 获取某个站点支持的MongoDB产品类型以及规格
请求地址: cdsapi.capitalonline.net/mongodb
请求方法: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
RegionId | 是 | string | 站点编号 |
请求示例:
def get_mongodb_spec_info(RegionId):
"""
获取某个站点支持的Mongodb产品类型以及规格
:param RegionId:
"""
action = "DescribeSpecInfo"
method = "GET"
param = {
"RegionId": RegionId
}
url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param)
res = requests.get(url)
result = json.loads(res.content)
result = json.dumps(result) # json格式化
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
返回示例:
{
"Code": "Success",
"Data": {
"ProductName": "mongodb",
"Products": [{
"Architectures": [{
"ArchitectureName": "副本集",
"ComputeRoles": [{
"ComputeName": "高性能型",
"Standards": {
"AttachDisk": [{
"BasicIops": "3000",
"DiskMax": 2000,
"DiskMaxExpand": 2000,
"DiskMin": 100,
"DiskName": "性能型",
"DiskStep": 100,
"DiskUnit": "G",
"DiskValue": "high_disk"
}],
"CpuRam": [{
"CPU": 1,
"Name": "1C2G",
"PaasGoodsId": 7292,
"RAM": 2
}, {
"CPU": 2,
"Name": "2C4G",
"PaasGoodsId": 7295,
"RAM": 4
}, {
"CPU": 4,
"Name": "4C8G",
"PaasGoodsId": 7298,
"RAM": 8
}, {
"CPU": 8,
"Name": "8C16G",
"PaasGoodsId": 7301,
"RAM": 16
}, {
"CPU": 8,
"Name": "8C32G",
"PaasGoodsId": 7307,
"RAM": 32
}, {
"CPU": 8,
"Name": "8C24G",
"PaasGoodsId": 7304,
"RAM": 24
}]
}
}],
"EnginesType": ["WiredTiger"],
"NetworkLinks": [{
"DescDetail": "默认链路:服务实例占用VDC私有网络IP地址,适用于对延迟敏感类型的应用。",
"LinkType": "default_link",
"Name": "默认链路",
"SplitRwSwitch": 1
}],
"SubProductName": "MongoDB 副本集版"
}],
"Version": "3.4.21"
}],
"RegionId": "CN_Hongkong_A"
},
"Message": "Success.",
"TaskId": ""
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
Message | string | 信息描述 |
Code | string | 状态码 |
TaskId | string | 任务Id |
Data | dict | 数据 |
Products | list | 该类产品支持的产品列表 |
ProductName | string | 产品名称 |
SubProductName | string | 子产品名称 |
Version | string | 产品支持的版本 |
Architectures | string | 产品支持的架构 |
ArchitectureName | string | 架构名称 |
NetworkLinks | list | 此架构支持的链路类型 |
DescDetail | string | 链路类型描述 |
LinkType | string | 链路类型“英文” |
Name | string | 链路类型“中文” |
ComputeRoles | list | 支持的计算类型,不同的计算类型支持不同规格,并支持添加不同类型的硬盘 |
Standards | dict | 该类型支持的规格 |
CpuRam | list | 支持的规格列表 |
CPU | int | 规格CPU大小 |
RAM | int | 规格RAM大小 |
Name | string | 规格名称 |
PaasGoodsId | int | 具体的产品编号,根据产品编号确定购买哪一种规格 |
AttachDisk | list | 该类型规格能够添加的磁盘类型列表 |
DiskMax | int | 单次支持最大规格的磁盘 |
DiskValue | string | 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用) |
BasicIops | string | 基础的磁盘的iops |
DiskUnit | string | 磁盘规格单位 |
DiskName | string | 磁盘类型名称 |
DiskMaxExpand | string | 磁盘最大可扩容大小 |
DiskMin | string | 磁盘最小大小 |
DiskStep | string | 磁盘扩容大小 |
EnginesType | string | 引擎类型 |
# 3.CreateDBInstance
Action: CreateDBInstance
描述: 创建MongoDB云数据库实例
请求地址: cdsapi.capitalonline.net/mongodb
请求方法: POST
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
RegionId | 是 | string | 站点编号 |
VdcId | 是 | string | 数据中心的编号 |
BasePipeId | 是 | string | 数据中心的私网编号,创建服务将按这个私网分配id |
InstanceName | 是 | string | 实例名称 |
PaasGoodsId | 是 | string | 产品的规格编号 |
DiskType | 是 | string | 磁盘类型 |
DiskValue | 是 | int | 磁盘大小 |
Password | 是 | string | Mongodb 最高权限数据库密码 |
Amount | 否 | int | 购买的数量一次最多购买三个 |
请求示例:
def create_mongodb():
"""
创建MongoDB实例
"""
action = "CreateDBInstance"
method = "POST"
param = {}
url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param=param)
body = {
"RegionId": "******",
"VdcId": "*******",
"BasePipeId": "******",
"InstanceName": "******",
"PaasGoodsId": "******",
"DiskType": "high_disk",
"DiskValue": 100,
"Password": "******",
}
res = requests.post(url, json=body)
result = json.loads(res.content)
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
返回示例:
{
"Code": "Success",
"Data": {},
"Message": "Success.",
"TaskId": ""
}
1
2
3
4
5
6
2
3
4
5
6
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
Code | string | 状态码 |
Data | dict | 数据 |
Message | string | 信息描述 |
TaskId | string | 任务id |
# 4.DescribeDBInstances
Action: DescribeDBInstances
描述: 获取MongoDB实例列表(支持常见字段过滤:实例编号、实例名称、实例IP)
请求地址: cdsapi.capitalonline.net/mongodb
请求方法: GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
InstanceUuid | 否 | string | 要过滤的实例编号 |
InstanceName | 否 | string | 要过滤的实例名称 |
IP | 否 | string | 要过滤的实例ip |
请求示例:
def get_mongodb_instances_list():
"""
获取Mongodb实例列表(可根据ip、instance_uuid、instance_name过滤)
"""
action = "DescribeDBInstances"
method = "GET"
param = {
"IP": "66.66"
}
url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param)
res = requests.get(url)
result = json.loads(res.content)
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
返回示例:
{
"Code": "Success",
"Data": [{
"CloneServices": null,
"DisplayName": "亚太地区-香港-可用区A",
"IP": "66.66.0.44",
"InstanceName": "test-mongodb",
"InstanceUuid": "9a5a796c-78ab-4b1c-88a4-ba9d9e8c996b",
"LinkType": "default_link",
"LinkTypeStr": "默认链路",
"MasterInfo": "",
"Port": 27017,
"Ram": 2048,
"RegionId": "CN_Hongkong_A",
"RelationService": null,
"ResourceId": "71bf731e-7cc8-4307-8408-4952e4dcd470",
"Status": "RUNNING",
"StatusStr": "运行中",
"SubProductName": "MongoDB 副本集版",
"VdcId": "d459c74b-d60e-4f28-adbb-67be402f76f3",
"VdcName": "香港PaaS",
"Version": "3.4.21"
}],
"Message": "Success."
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
Code | string | 状态码 |
Data | dict | 数据 |
CloneServices | list | 克隆的临时实例列表 |
DisplayName | string | 可用区 |
IP | string | 数据库的连接的IP |
InstanceName | string | 实例名称 |
InstanceUuid | string | 实例编号 |
LinkType | string | 链路类型名称 |
LinkTypeStr | string | 链路类型名称对应中文 |
MasterInfo | dict | 从属集群,只读服务会有值 |
Port | int | 连接的端口 |
Ram | int | 内存 单位M |
RegionId | string | 站点编号 |
RelationService | dict | 相关联的服务实例 |
Status | string | 实例状态 |
StatusStr | string | 状态对应的中文 |
SubProductName | string | 子产品的名字 |
VdcId | string | 数据中心的编号 |
VdcName | string | 数据中心名称 |
Version | string | 服务版本 |
Message | string | 信息描述 |
# 5.DeleteDBInstance
Action: DeleteDBInstance
描述: 删除MongoDB实例
请求地址: cdsapi.capitalonline.net/mongodb
请求方法: POST
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
InstanceUuid | 否 | string | 实例编号 |
请求示例:
def delete_mongodb(instance_uuid, ):
"""
删除MongoDB实例
:param instance_uuid:
"""
action = "DeleteDBInstance"
method = "POST"
param = {}
url = get_signature(action, AK, AccessKeySecret, method, MONGODB_URL, param=param)
body = {
"InstanceUuid": instance_uuid,
}
res = requests.post(url, json=body)
result = json.loads(res.content)
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
返回示例:
{
"Code": "Success",
"Data": {},
"Message": "Success.",
"TaskId": "***************"
}
1
2
3
4
5
6
2
3
4
5
6
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
Code | string | 状态码 |
Data | dict | 数据 |
Message | string | 信息描述 |
TaskId | string | 任务编号 |