Redis 公开API目录

API概览

云数据库Redis提供以下API接口。

实例

API 描述
DescribeRegins 获取云数据库Redis支持购买的站点区域
DescribeAvailableDBConfig 获取某个站点可购买的Redis产品类型以及规格
CreateDBInstance 创建Redis云数据库实例
DescribeDBInstances 查看Redis实例列表
DeleteDBInstance 删除Redis实例

备份

API 描述
DescribeBackups 获取备份集列表
DownloadBackup 获取备份文件信息及内网下载地址
CreateBackup 创建备份(物理全备份,RDB格式文件)
DeleteBackup 删除备份文件

错误码

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.DescribeRegins

Action:DescribeRegins

描述: 获取云数据库Redis支持购买的站点区域

请求地址: cdsapi.capitalonline.net/redis

请求方法: GET

请求参数:

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
IsSaling int 站点是否能购买服务,1:站点支持购买;0:资源不足已下线
CityId string 城市编号
CityName string 城市名称
SiteName string 站点名称
RegionId string 站点编号
RegionName string 区域名称

请求示例:

  1. def get_redis_Zones():
  2. """
  3. 获取云数据库Redis支持的站点区域
  4. """
  5. action = "DescribeRegins"
  6. method = "GET"
  7. param = {
  8. }
  9. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param)
  10. res = requests.get(url)
  11. result = json.loads(res.content)
  12. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "CityId": "3082f45e-306e-11e7-9796-0050569b4d9c",
  5. "CityName": "洛杉矶",
  6. "IsSaling": 1,
  7. "RegionId": "US_LosAngeles_A",
  8. "RegionName": "北美地区",
  9. "SiteName": "洛杉矶1"
  10. }, {
  11. "CityId": "7b98a5d1-306e-11e7-9796-0050569b4d9c",
  12. "CityName": "法兰克福",
  13. "IsSaling": 1,
  14. "RegionId": "EUR_Germany_A",
  15. "RegionName": "欧洲地区",
  16. "SiteName": "德国1"
  17. }, {
  18. "CityId": "8737606f-306d-11e7-9796-0050569b4d9c",
  19. "CityName": "东京",
  20. "IsSaling": 1,
  21. "RegionId": "APAC_Tokyo_A",
  22. "RegionName": "亚太地区",
  23. "SiteName": "东京1"
  24. }, {
  25. "CityId": "27b57297-306d-11e7-9796-0050569b4d9c",
  26. "CityName": "香港",
  27. "IsSaling": 1,
  28. "RegionId": "CN_Hongkong_A",
  29. "RegionName": "亚太地区",
  30. "SiteName": "香港1"
  31. }, {
  32. "CityId": "a8937b00-306d-11e7-9796-0050569b4d9c",
  33. "CityName": "新加坡",
  34. "IsSaling": 1,
  35. "RegionId": "APAC_Singapore_A",
  36. "RegionName": "亚太地区",
  37. "SiteName": "新加坡1"
  38. }, {
  39. "CityId": "5c432e0e-306e-11e7-9796-0050569b4d9c",
  40. "CityName": "阿姆斯特丹",
  41. "IsSaling": 1,
  42. "RegionId": "EUR_Netherlands_A",
  43. "RegionName": "欧洲地区",
  44. "SiteName": "荷兰1"
  45. }, {
  46. "CityId": "154ed19e-306e-11e7-9796-0050569b4d9c",
  47. "CityName": "纽约",
  48. "IsSaling": 1,
  49. "RegionId": "US_NewYork_A",
  50. "RegionName": "北美地区",
  51. "SiteName": "纽约1"
  52. }, {
  53. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  54. "CityName": "北京",
  55. "IsSaling": 1,
  56. "RegionId": "CN_Beijing_B",
  57. "RegionName": "中国大陆",
  58. "SiteName": "北京2"
  59. }, {
  60. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  61. "CityName": "北京",
  62. "IsSaling": 1,
  63. "RegionId": "CN_Beijing_E",
  64. "RegionName": "中国大陆",
  65. "SiteName": "北京5"
  66. }, {
  67. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  68. "CityName": "北京",
  69. "IsSaling": 1,
  70. "RegionId": "CN_Beijing_A",
  71. "RegionName": "中国大陆",
  72. "SiteName": "北京1"
  73. }, {
  74. "CityId": "e48e2312-306d-11e7-9796-0050569b4d9c",
  75. "CityName": "达拉斯",
  76. "IsSaling": 1,
  77. "RegionId": "US_Dallas_A",
  78. "RegionName": "北美地区",
  79. "SiteName": "达拉斯1"
  80. }, {
  81. "CityId": "713d3745-306d-11e7-9796-0050569b4d9c",
  82. "CityName": "台北",
  83. "IsSaling": 1,
  84. "RegionId": "CN_Taipei_A",
  85. "RegionName": "亚太地区",
  86. "SiteName": "台北1"
  87. }, {
  88. "CityId": "123d0d01-306d-11e7-9796-0050569b4d9c",
  89. "CityName": "无锡",
  90. "IsSaling": 1,
  91. "RegionId": "CN_Wuxi_A",
  92. "RegionName": "中国大陆",
  93. "SiteName": "无锡1"
  94. }, {
  95. "CityId": "87fcbbd6-be0a-11e7-9d6b-0242ac110004",
  96. "CityName": "首尔",
  97. "IsSaling": 1,
  98. "RegionId": "APAC_Seoul_A",
  99. "RegionName": "亚太地区",
  100. "SiteName": "首尔1"
  101. }, {
  102. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  103. "CityName": "北京",
  104. "IsSaling": 1,
  105. "RegionId": "CN_Beijing_C",
  106. "RegionName": "中国大陆",
  107. "SiteName": "北京3"
  108. }, {
  109. "CityId": "c11a5abe-3f7e-11e7-86b1-0242ac11000e",
  110. "CityName": "广州",
  111. "IsSaling": 1,
  112. "RegionId": "CN_Guangzhou_A",
  113. "RegionName": "中国大陆",
  114. "SiteName": "广州1"
  115. }, {
  116. "CityId": "b44355d0-65e7-11e7-8ea9-0050569b651c",
  117. "CityName": "上海",
  118. "IsSaling": 1,
  119. "RegionId": "CN_Shanghai_A",
  120. "RegionName": "中国大陆",
  121. "SiteName": "上海1"
  122. }, {
  123. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  124. "CityName": "北京",
  125. "IsSaling": 1,
  126. "RegionId": "",
  127. "RegionName": "中国大陆",
  128. "SiteName": "北京8"
  129. }],
  130. "Message": "Success."
  131. }

2.DescribeAvailableDBConfig

Action:DescribeAvailableDBConfig

描述: 获取某个站点支持的Redis产品类型以及规格

请求地址: cdsapi.capitalonline.net/redis

请求方法: GET

请求参数:

参数名 必选 类型 说明
RegionId string 站点编号

请求示例:

  1. def get_redis_config():
  2. """
  3. 获取某个站点支持的Redis产品类型以及规格
  4. """
  5. action = "DescribeAvailableDBConfig"
  6. method = "GET"
  7. param = {
  8. "RegionId": "CN_Hongkong_A"
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. print(result)

返回参数

参数名 类型 说明
Code string 状态码
Data DataObj 可购买的redis产品类型以及规格数据对象
Message string 返回调用接口状态信息和code相对应,比如:Success, Error
TaskId string 任务Id, 暂时不支持根据任务查询任务状态

DataObj

参数名 类型 说明
ProductName string 产品名称,比如redis
Products list of ProductObj 该类产品支持的产品列表
RegionId string 站点编号

ProductObj

参数名 类型 说明
Architectures list of ArchitectureObj 产品支持的架构列表
Version string 产品支持的版本

ArchitectureObj

参数名 类型 说明
ArchitectureName string 架构名称
ArchitectureType int 架构类型:
1-主从版
2-集群版
3-经济型主从版
ComputeRoles list of ComputeRoleObj 支持的计算类型,不同的计算类型支持不同规格,并支持添加不同类型的硬盘
EnginesType string 引擎类型
NetworkLinks list of NetworkLinkObj 此架构支持的链路类型
SubProductName string 子产品名称,比如:Redis 经济型主从、Redis 主从版、Redis 集群版

ComputeRoleObj

参数名 类型 说明
ComputeName string 计算类型名称, 比如:通用型
ComputeType int 支持的计算类型(目前仅支持通用型计算类型):
0-通用型
Standards StandardObj 该类型支持的规格

StandardObj

参数名 类型 说明
AttachDisk list of AttachDiskObj 该类型规格能够添加的磁盘类型列表
CpuRam list of CpuRamObj 支持的规格列表

AttachDiskObj

参数名 类型 说明
BasicIops string 基础的磁盘的iops
DiskMax int 单次支持扩容到最大磁盘容量为2000
DiskMaxExpand string 磁盘最大可扩容大小
DiskMin string 磁盘容量支持的最小值,起步为100
DiskName string 磁盘类型名称,包含SSD和性能型
SSD:SSD磁盘,磁盘IOPS默认为5000,可购买IOPS性能包
性能型:普通SSD盘,磁盘IOPS限定在3000
DiskStep string 磁盘扩容步长,步长大小=100
DiskUnit string 磁盘容量单位:GB
DiskValue string 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用)

CpuRamObj

参数名 类型 说明
CPU int 核心数量,单位:个
Name string 规格名称
PaasGoodsId int 具体的产品编号,根据产品编号确定购买哪一种规格
RAM int 内存大小,单位:GB

NetworkLinkObj

参数名 类型 说明
DescDetail string 链路类型描述
LinkType string 链路类型“英文”
Name string 链路类型“中文”

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "ProductName": "redis",
  5. "Products": [{
  6. "Architectures": [{
  7. "ArchitectureName": "经济型主从",
  8. "ComputeRoles": [{
  9. "ComputeName": "通用型",
  10. "Standards": {
  11. "AttachDisk": [{
  12. "BasicIops": "",
  13. "DiskMax": 2000,
  14. "DiskMaxExpand": 2000,
  15. "DiskMin": 100,
  16. "DiskName": "SSD",
  17. "DiskStep": 100,
  18. "DiskUnit": "G",
  19. "DiskValue": "ssd_disk"
  20. }],
  21. "CpuRam": [{
  22. "CPU": 0,
  23. "Name": "1G",
  24. "PaasGoodsId": 12188,
  25. "RAM": 1
  26. }]
  27. }
  28. }],
  29. "EnginesType": [],
  30. "NetworkLinks": [{
  31. "DescDetail": "默认链路:服务实例占用VDC私有网络IP地址,适用于对延迟敏感类型的应用。",
  32. "LinkType": "default_link",
  33. "Name": "默认链路"
  34. }],
  35. "SubProductName": "Redis 经济型主从"
  36. }],
  37. "Version": "2.8"
  38. }],
  39. "RegionId": "*******"
  40. },
  41. "Message": "success",
  42. "TaskId": ""
  43. }

3.CreateDBInstance

Action:CreateDBInstance

描述: 创建Redis云数据库实例

请求地址: cdsapi.capitalonline.net/redis

请求方法: POST

请求参数:

参数名 必选 类型 说明
RegionId string 站点编号
VdcId string 数据中心的编号
BasePipeId string 数据中心的私网编号,创建实例将按这个私网分配IP
InstanceName string 实例名称
PaasGoodsId int 产品的规格编号
Password string Redis数据库密码
TestGroupId int 是否使用测试组计费
Amount int 购买的数量一次最多购买三个

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 包含任务编码和实例编码列表
InstancesUuid list 实例编码
TaskId string 任务id

请求示例:

  1. def create_redis():
  2. """
  3. 创建Redis实例
  4. """
  5. action = "CreateDBInstance"
  6. method = "POST"
  7. param = {}
  8. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param=param)
  9. body = {
  10. "RegionId": "********",
  11. "VdcId": "*******",
  12. "BasePipeId": "*******",
  13. "InstanceName": "*******",
  14. "PaasGoodsId": "*******",
  15. "Password": "*******",
  16. }
  17. res = requests.post(url, json=body)
  18. result = json.loads(res.content)
  19. print(result)

返回示例:

  1. {
  2. "Message": "Success.",
  3. "Code": "Success",
  4. "Data": {
  5. "InstancesUuid":["5d74bb81-0473-464d-b15b-0ae418619248",]
  6. },
  7. "TaskId": "****************"
  8. }

4.DescribeDBInstances

Action:DescribeDBInstances

描述: 获取Redis实例列表(支持常见字段过滤:实例编号、实例名称、实例IP)

请求地址: cdsapi.capitalonline.net/redis

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要过滤的实例编号
InstanceName string 要过滤的实例名称
IP string 要过滤的实例IP

返回参数

参数名 类型 说明
RelationService dict 相关联的服务实例
CloneServices list 克隆的临时实例列表
AppName string 数据中心名称
IP string 数据库的连接的IP
Port int 连接的端口
Ram int 内存 单位M
RegionId string 站点编号
VdcId string 数据中心的编号
MasterInfo dict 从属集群,只读实例会有值(Redis目前不支持只读实例)
LinkTypeStr string 链路类型名称
RoGroups list 只读实例列表(Redis目前不支持只读实例)
SubProductName string 子产品的名字
Version string 服务版本
LinkType string 链路类型:英文
Status string 实例状态
StatusStr string 状态对应的中文
InstanceUuid string 实例编号
InstanceName string 实例名称
CreatedTime string 实例创建时间

请求示例:

  1. def get_redis_instances_list():
  2. """
  3. 获取Redis实例列表(支持常见字段过滤、instance_uuid/instance_name/ip)
  4. """
  5. action = "DescribeDBInstances"
  6. method = "GET"
  7. param = {
  8. "IP": "66.66" # 根据ip查询
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. print(result)

返回示例:

  1. "Data": [{
  2. "CloneServices": null,
  3. "CreatedTime": "2020-03-13 15:38:35",
  4. "DisplayName": "中国大陆-北京-可用区H",
  5. "IP": "********",
  6. "InstanceName": "********",
  7. "InstanceUuid": "***************",
  8. "LinkType": "default_link",
  9. "LinkTypeStr": "默认链路",
  10. "MasterInfo": "",
  11. "Port": 9736,
  12. "Ram": 1024,
  13. "RegionId": "CN_Beijing_H",
  14. "RelationService": null,
  15. "ResourceId": "9e8e7d56-d394-4b8f-a2e3-51ca29048073",
  16. "RoGroups": null,
  17. "Status": "RUNNING",
  18. "StatusStr": "运行中",
  19. "SubProductName": "Redis 读写分离版",
  20. "VdcId": "cacdf937-d484-435a-894b-241be9309d80",
  21. "VdcName": "北京8",
  22. "Version": "2.8.19"
  23. }],
  24. "Message": "Success."
  25. }

5.DeleteDBInstance

Action:DeleteDBInstance

描述: 删除Redis实例

请求地址: cdsapi.capitalonline.net/redis

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务编号

请求示例:

  1. def delete_redis(instance_uuid, ):
  2. """
  3. 删除Redis实例
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "DeleteDBInstance"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. }
  13. res = requests.post(url, json=body)
  14. result = json.loads(res.content)
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": "****************"
  6. }

6.DescribeBackups

Action:DescribeBackups

描述: 获取备份集列表

请求地址: cdsapi.capitalonline.net/redis

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务编号

请求示例:

  1. def get_redis_backups_list(instance_uuid):
  2. """
  3. 获取Redis实例备份列表
  4. """
  5. action = "DescribeBackups"
  6. method = "GET"
  7. param = {
  8. "InstanceUuid": instance_uuid, # 实例ID
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. result = json.dumps(result) # json格式化
  14. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "BackupId": "**************",
  5. "BackupMode": "manual",
  6. "BackupSize": 178,
  7. "BackupType": "full-backup",
  8. "Desc": "",
  9. "EndTime": "2020-08-21 18:11:21",
  10. "InstanceId": "***************",
  11. "StartTime": "2020-08-21 18:11:04",
  12. "Status": "finished"
  13. }, {
  14. "BackupId": "***************",
  15. "BackupMode": "manual",
  16. "BackupSize": 178,
  17. "BackupType": "full-backup",
  18. "Desc": "",
  19. "EndTime": "2020-08-21 18:01:34",
  20. "InstanceId": "********************",
  21. "StartTime": "2020-08-21 18:01:16",
  22. "Status": "finished"
  23. }],
  24. "Message": "success"
  25. }

7.DownloadBackup

Action:DownloadBackup

描述: 获取备份文件信息及备份文件下载地址

请求地址: cdsapi.capitalonline.net/redis

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
BackupId string 备份文件的编号

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
BackupId string 备份编号
Status string 备份状态
BackupType string 备份的类型
StartTime string 备份的开始时间
EndTime string 备份的结束时间
ShardId string 集群版分片id,其他产品为空字符串
BackupMode string 备份的类型(自动或者手动备份)
BackupSize string 备份文件大小,单位字节
Desc string 备份的描述(手动备份可以自定义内容),自动备份为空字符串
BackupDownloadUrl string 公网下载地址
BackupIntranetDownloadUrl string 同内网下载地址

请求示例:

  1. def get_redis_backups_download(instance_uuid,backup_id):
  2. """
  3. 获取Redis实例备份详情
  4. """
  5. action = "DownloadBackup"
  6. method = "GET"
  7. param = {
  8. "InstanceUuid": instance_uuid, # 实例ID
  9. "BackupId": backup_id, # 备份ID
  10. }
  11. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param)
  12. res = requests.get(url)
  13. result = json.loads(res.content)
  14. result = json.dumps(result) # json格式化
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "BackupDownloadUrl": "https:/***************************",
  5. "BackupId": "**********",
  6. "BackupIntranetDownloadUrl": "http://***************",
  7. "BackupMode": "manual",
  8. "BackupSize": 176,
  9. "BackupType": "full-backup",
  10. "Desc": "",
  11. "EndTime": "2020-08-21 15:59:02",
  12. "InstanceId": "*************",
  13. "ShardId": "*************",
  14. "StartTime": "2020-08-21 15:58:45",
  15. "Status": "finished"
  16. },
  17. "Message": "success",
  18. "TaskId": ""
  19. }

8.CreateBackup

Action:CreateBackup

描述: 创建备份(物理全备份,RDB格式文件)

请求地址: cdsapi.capitalonline.net/redis

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
Desc string 备份的描述,不传默认为空字符串

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务编号

请求示例:

  1. def create_redis_backup(instance_uuid):
  2. """
  3. 创建Redis备份
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "CreateBackup"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "Desc": "测试Redis备份"
  13. }
  14. res = requests.post(url, json=body)
  15. result = json.loads(res.content)
  16. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "succes",
  5. "TaskId": "*************"
  6. }

9.DeleteBackup

Action:DeleteBackup

描述: 删除备份文件

请求地址: cdsapi.capitalonline.net/redis

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
BackupId string 删除的备份文件编号

返回参数

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务编号

请求示例:

  1. def delete_redis_backup(instance_uuid, backup_id):
  2. """
  3. 删除Redis实例备份
  4. :param instance_uuid: 实例编号
  5. :param backup_id: 备份编号
  6. """
  7. action = "DeleteBackup"
  8. method = "POST"
  9. param = {}
  10. url = get_signature(action, AK, AccessKeySecret, method, REDIS_URL, param=param)
  11. body = {
  12. "InstanceUuid": instance_uuid,
  13. "BackupId": backup_id,
  14. }
  15. res = requests.post(url, json=body)
  16. result = json.loads(res.content)
  17. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "success",
  5. "TaskId": "*************"
  6. }