- MySQL 公开API目录
- API概览
- 访问地址
- 1.DescribeRegions
- 2.DescribeAvailableDBConfig
- 3.CreateDBInstance
- 4.DescribeDBInstances
- 5.CreatePrivilegedAccount
- 6.ModifyDbPrivilege
- 7.DeleteDbPrivilege
- 8.DescribeDbPrivileges
- 9.DescribeDBAccount
- 10.DeleteDBAccount
- 11.DescribeModifiableDBSpec
- 12.ModifyDBInstanceSpec
- 13.DeleteDBInstance
- 14.DescribeAvailableReadOnlyConfig
- 15.CreateReadOnlyDBInstance
- 16.CreateBackup
- 17.DescribeBackups
- 18.DeleteBackup
- 19.DownloadBackup
- 20.ModifyDbBackupPolicy
- 21.DescribeDBInstancePerformance
- 22.DescribeDBParameter
- 23.DescribeDBParameterModifyHistory
- 24.ModifyDBParameter
MySQL 公开API目录
- MySQL 公开API目录
- API概览
- 访问地址
- 1.DescribeRegions
- 2.DescribeAvailableDBConfig
- 3.CreateDBInstance
- 4.DescribeDBInstances
- 5.CreatePrivilegedAccount
- 6.ModifyDbPrivilege
- 7.DeleteDbPrivilege
- 8.DescribeDbPrivileges
- 9.DescribeDBAccount
- 10.DeleteDBAccount
- 11.DescribeModifiableDBSpec
- 12.ModifyDBInstanceSpec
- 13.DeleteDBInstance
- 14.DescribeAvailableReadOnlyConfig
- 15.CreateReadOnlyDBInstance
- 16.CreateBackup
- 17.DescribeBackups
- 18.DeleteBackup
- 19.DownloadBackup
- 20.ModifyDbBackupPolicy
- 21.DescribeDBInstancePerformance
- 22.DescribeDBParameter
- 23.DescribeDBParameterModifyHistory
- 24.ModifyDBParameter
API概览
云数据库MySQL提供以下API接口。
实例
| API | 描述 |
|---|---|
| DescribeRegions | 获取云数据库MySQL支持购买的站点区域 |
| DescribeAvailableDBConfig | 获取某个站点可购买的MySQL产品类型以及规格 |
| CreateDBInstance | 创建MySQL云数据库实例 |
| DescribeDBInstances | 查看MySQL实例列表 |
| DescribeModifiableDBSpec | 获取当前MySQL实例支持的配置变更的规格 |
| ModifyDBInstanceSpec | 修改数据库实例(包括常规实例和只读实例)规格或存储空间 |
| DeleteDBInstance | 删除MySQL实例 |
账号
| API | 描述 |
|---|---|
| CreatePrivilegedAccount | 创建账号 |
| ModifyDbPrivilege | 修改普通账号数据库权限 |
| DeleteDbPrivilege | 删除普通账号数据库权限 |
| DescribeDbPrivileges | 获取普通账号详细权限 |
| DescribeDBAccount | 获取账号列表 |
| DeleteDBAccount | 删除账号 |
备份
| API | 描述 |
|---|---|
| CreateBackup | 为实例创建一个备份集 |
| DescribeBackups | 查看备份集列表 |
| DeleteBackup | 删除数据备份文件 |
| DownloadBackup | 获取备份下载地址 |
| ModifyDbBackupPolicy | 修改云数据库MySQL高可用版自动备份设置 |
只读实例
| API | 描述 |
|---|---|
| DescribeAvailableReadOnlyConfig | 获取当前MySQL主从实例支持购买的只读实例规格 |
| CreateReadOnlyDBInstance | 为MySQL添加只读实例(目前只支持主从版) |
监控
| API | 描述 |
|---|---|
| DescribeDBInstancePerformance | 获取云数据库MySQL监控指标 |
参数
| API | 描述 |
|---|---|
| DescribeDBParameter | 获取云数据库MySQL参数列表 |
| DescribeDBParameterModifyHistory | 获取云数据库MySQL参数修改历史记录 |
| ModifyDBParameter | 修改云数据库MySQL参数 |
错误码
| 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.DescribeRegions
Action:DescribeRegions
描述: 获取云数据库MySQL支持购买的站点区域。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
无
返回参数:
| 名称 | 类型 | 描述 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | list | 数据 |
| IsSaling | int | 站点是否能购买服务,1:站点支持购买;0:资源不足已下线 |
| CityName | string | 城市名称 |
| CityId | string | 城市编号 |
| SiteName | string | 站点名称 |
| RegionId | string | 站点编号 |
| RegionName | string | 区域名称 |
请求示例:
def get_mysql_zones():"""获取云数据库MySQL支持的站点区域"""action = "DescribeRegions"method = "GET"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回示例:
{"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": "CN_Beijing_H","RegionName": "中国大陆","SiteName": "北京8"}],"Message": "Success."}
2.DescribeAvailableDBConfig
Action:DescribeAvailableDBConfig
描述: 获取某个站点可购买的MySQL产品类型以及规格
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| RegionId | 是 | string | 站点编号 |
请求示例:
def get_mysql_spec_info():"""获取某个站点支持的MySQL产品类型以及规格"""action = "DescribeAvailableDBConfig"method = "GET"param = {"RegionId": "********"}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Code | string | 状态码 |
| Data | DataObj | 可购买的MySQL产品类型以及规格数据对象 |
| Message | string | 返回调用接口状态信息和code相对应,比如:Success, Error |
| TaskId | string | 任务Id, 暂时不支持根据任务查询任务状态 |
DataObj
| 参数名 | 类型 | 说明 |
|---|---|---|
| ProductName | string | 产品名称,比如mysql |
| Products | list of ProductObj | 该类产品支持的产品列表 |
| RegionId | string | 站点编号 |
ProductObj
| 参数名 | 类型 | 说明 |
|---|---|---|
| Architectures | list of ArchitectureObj | 产品支持的架构列表 |
| Version | string | 产品支持的版本 |
ArchitectureObj
| 参数名 | 类型 | 说明 |
|---|---|---|
| ArchitectureName | string | 架构名称 |
| ArchitectureType | int | 架构类型: 0-基础版 1-主从版 |
| ComputeRoles | list of ComputeRoleObj | 支持的计算类型,不同的计算类型支持不同规格,并支持添加不同类型的硬盘 |
| EnginesType | string | 引擎类型 |
| NetworkLinks | list of NetworkLinkObj | 此架构支持的链路类型 |
| SubProductName | string | 子产品名称,比如:MySQL 高可用版、MySQL 基础版 |
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 | 链路类型“中文” |
返回示例:
{"Code": "Success","Data": {"ProductName": "mysql","Products": [{"Architectures": [{"ArchitectureName": "主从","ArchitectureType": 1,"ComputeRoles": [{"ComputeName": "通用型","ComputeType": 0,"Standards": {"AttachDisk": [{"BasicIops": "","DiskMax": 2000,"DiskMaxExpand": 2000,"DiskMin": 100,"DiskName": "SSD","DiskStep": 100,"DiskUnit": "G","DiskValue": "ssd_disk"}],"CpuRam": [{"CPU": 1,"Name": "1C2G","PaasGoodsId": 17060,"RAM": 2}]}}],"EnginesType": [],"NetworkLinks": [{"DescDetail": "默认链路:服务实例占用VDC私有网络IP地址,适用于对延迟敏感类型的应用。","LinkType": "default_link","Name": "默认链路"}],"SubProductName": "MySQL高可用版"}],"Version": "8.0"}],"RegionId": "*******"},"Message": "success","TaskId": ""}
3.CreateDBInstance
Action:CreateDBInstance
描述: 创建MySQL云数据库实例
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| RegionId | 是 | string | 站点编号 |
| VdcId | 是 | string | 数据中心的编号 |
| BasePipeId | 是 | string | 数据中心的私网编号,创建服务将按这个私网分配IP |
| InstanceName | 是 | string | 实例名称 |
| PaasGoodsId | 是 | int | 产品的规格编号 |
| DiskType | 是 | string | 磁盘类型 只能选择支持的磁盘类型 |
| DiskValue | 是 | int | 磁盘大小 |
| TimeZone | 否 | string | 实例的UTC时区,默认值根据地域不同变化,输入参数范围: [“-12:00”,”-11:00”,”-10:00”,”-09:00”,”-08:00”,”-07:00”,”-06:00”,”-05:00”,”-04:00”,”-03:00”,”-02:00”,”-01:00”,”+00:00”,”+01:00”,”+02:00”,”+03:00”,”+04:00”,”+05:00”,”+05:30”,”+06:00”,”+07:00”,”+08:00”,”+09:00”,”+10:00”,”+11:00”,”+12:00”,”+13:00”,] |
| Amount | 否 | int | 购买的数量,一次最多购买10个 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 包含任务编码和实例编码列表 |
| InstancesUuid | list | 实例编码 |
| TaskId | string | 任务id |
请求示例:
def create_mysql():"""创建MySQL实例"""action = "CreateDBInstance"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"RegionId": "******","VdcId": "******","BasePipeId": "******","InstanceName": "******","PaasGoodsId": "******","DiskType": "******","DiskValue": 100,"Password": "******","Amount": 1}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Message": "Success.","Code": "Success","Data": {"InstancesUuid":["5d74bb81-0473-464d-b15b-0ae418619248",]},"TaskId": "**********"}
4.DescribeDBInstances
Action:DescribeDBInstances
描述: 查看MySQL实例列表(支持常见字段过滤:实例编号、实例名称、实例IP)
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 否 | string | 要过滤的实例编号 |
| InstanceName | 否 | string | 要过滤的实例名称 |
| IP | 否 | string | 要过滤的实例IP |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | list | 数据 |
| RelationService | dict | 相关联的服务实例 |
| DisplayName | string | 站点名称 |
| VdcName | string | 数据中心名称 |
| IP | string | 数据库的连接的IP |
| Port | int | 连接的端口 |
| Cpu | int | CPU大小 |
| Ram | int | 内存,单位MB |
| Disks | int | 磁盘大小,单位GB |
| RegionId | string | 站点编号 |
| VdcId | string | 数据中心的编号 |
| Master_Info | dict | 从属集群,当实例为只读实例时有值 |
| LinkTypeStr | string | 链路类型名称 |
| RoGroups | list | 只读实例列表 |
| SubProductName | string | 子产品的名字 |
| Version | string | MySQL的版本 |
| LinkType | string | 链路类型:英文 |
| Status | string | 实例状态 |
| StatusStr | string | 状态对应的中文 |
| InstanceUuid | string | 实例编号 |
| InstanceName | string | 实例名称 |
| CreatedTime | string | 实例创建时间 |
请求示例:
def get_mysql_instances_list():"""获取MySQL实例列表(支持常见字段过滤、instance_uuid/instance_name/ip)"""action = "DescribeDBInstances"method = "GET"param = {"IP": "66.66" # 可根据可选字段过滤}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回示例:
{"Code": "Success","Data": [{"Cpu": 4,"CreatedTime": "2020-05-03 22:16:22","Disks": 200,"DisplayName": "亚太地区-香港-可用区A","IP": "66.66.0.46","InstanceName": "test-mysql","InstanceUuid": "5ac7c945-ae47-4bbf-82e6-2823d64b57c5","LinkType": "default_link","LinkTypeStr": "默认链路","MasterInfo": "","Port": 6033,"Ram": 8192,"RegionId": "CN_Hongkong_A","RelationService": null,"ResourceId": "45533175-2c4b-4e5f-8280-85b68e932381","RoGroups": [{"Cpu": 4,"CreateTime": "2020-05-04 00:37:13","InpaasId": "591f61a6-2197-4b14-bd1a-82a8ee345647","Ip": "66.66.0.48","Locked": "","Message": "运行中","Port": 6033,"Progress": 100,"Ram": 8192,"ServiceId": "5f88d00f-d01b-4103-ba29-5810b027f7c9","ResourceId": "45533175-2c4b-4e5f-8280-85b68e932381","ServiceName": "mysql_for_readonly","Status": "RUNNING","SvcType": "mysql-readonly"}],"Status": "RUNNING","StatusStr": "运行中","SubProductName": "MySQL 高可用版\n","VdcId": "d459c74b-d60e-4f28-adbb-67be402f76f3","VdcName": "香港PaaS1","Version": "5.7.24"}],"Message": "Success."}
5.CreatePrivilegedAccount
Action:CreatePrivilegedAccount
描述: 创建用户账号
请求地址:cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要初始化的实例编号 |
| AccountName | 是 | string | 账户名称 |
| Password | 是 | string | 账户密码 |
| AccountType | 是 | string | 账户类型,支持创建高权限用户与普通用户。取值范围: 高权限用户:”Super” 普通用户:”Normal” 注意:一个实例只能有一个高权限账号 |
| Description | 否 | string | 账户描述,不传默认为空 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| TaskId | string | 任务id |
请求示例:
def create_mysql_super_account(instance_uuid, ):"""创建MySQL高权限用户:param instance_uuid: 实例编号"""action = "CreatePrivilegedAccount"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"AccountName": "******","Password": "******","AccountType": "Super","Description": "******"}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Success.","TaskId": ""}
6.ModifyDbPrivilege
Action:ModifyDbPrivilege
描述: 更新(添加、修改)云数据库MySQL普通用户权限
请求地址:cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要更新用户权限的实例编号 |
| AccountName | 是 | string | 普通用户的账号名称 |
| Operations | 是 | list of Operations | 账号赋权数据库与对应权限列表 |
OperationsObj
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| DBName | 是 | string | 需要赋权的数据库名称 |
| Privilege | 是 | string | 数据库对应账号权限。 ReadWrite:读写权限 DMLOnly:仅DML ReadOnly:只读权限 DDLOnly:仅DDL |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
请求示例:
def modify_mysql_privilege(instance_uuid):"""更新(添加、修改)云数据库MySQL普通用户权限:param instance_uuid: 实例编号"""action = "ModifyDbPrivilege"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"AccountName": "pt","Operations": [{"DBName": "test2","Privilege": "ReadWrite"}, {"DBName": "test1","Privilege": "DDLOnly"}]}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Message": "Success."}
7.DeleteDbPrivilege
Action:DeleteDbPrivilege
描述: 删除云数据库MySQL普通用户权限。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要删除用户权限的实例编号 |
| AccountName | 是 | string | 普通用户的账号名称 |
| DBNames | 是 | list of string | 需要删除权限的数据库名称 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Code | string | 状态码 |
| Message | string | 信息描述 |
请求示例:
def delete_user_privilege(instance_uuid):"""删除云数据库MySQL普通用户权限:param instance_uuid: 实例编号"""action = "DeleteDbPrivilege"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"AccountName": "pt","DBNames": ["test"]}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Message": "success"}
8.DescribeDbPrivileges
Action:DescribeDbPrivileges
描述: 获取云数据库MySQL普通用户详细权限。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
无
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Code | string | 状态码 |
| Data | DataObj | MySQL普通用户权限明细数据集合 |
| Message | string | 返回调用接口状态信息和code相对应,比如:Success, Error |
查询权限DataObj
| 参数名 | 类型 | 说明 |
|---|---|---|
| ReadWrite | string | 读写权限详细权限说明 |
| DMLOnly | string | 仅DML权限详细权限说明 |
| ReadOnly | string | 只读权限详细权限说明 |
| DDLOnly | string | 仅DDL权限详细权限说明 |
请求示例:
def get_mysql_user_privileges():"""获取云数据库MySQL普通用户详细权限"""action = "DescribeDbPrivileges"method = "GET"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回示例:
{"Code": "Success","Data": {"DDLOnly": "CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE","DMLOnly": "SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, SHOW VIEW, EVENT, TRIGGER","ReadOnly": "SELECT, LOCK TABLES, SHOW VIEW","ReadWrite": "SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER"},"Message": "success"}
9.DescribeDBAccount
Action:DescribeDBAccount
描述: 获取云数据库MySQL用户
请求地址:cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | list of DataObj | 实例当前用户列表信息 |
查询用户DataObj
| 参数名 | 类型 | 说明 |
|---|---|---|
| AccountType | string | 账号类型 高权限用户:”Super” 普通用户:”Normal” |
| ServiceId | string | 账号所属实例编号 |
| AccountStatus | string | 账号状态 processing:处理中 available:已激活 unavailable:未激活 |
| AccountName | string | 账号名称 |
| AccountDescription | string | 账号描述 |
| DatabasePrivileges | list of DatabasePrivilegesObj | 数据库权限详情 |
DatabasePrivilegesObj
| 参数名 | 类型 | 说明 |
|---|---|---|
| AccountPrivilegeType | string | 数据库对应账号权限。 ReadWrite:读写权限 DMLOnly:仅DML ReadOnly:只读权限 DDLOnly:仅DDL |
| DBName | string | 已授权数据库名称 |
| TableName | string | 已授权数据表名称 |
| AccountPrivilegeDetail | string | 账号权限详情 |
请求示例:
def get_mysql_account():"""获取云数据库MySQL用户"""action = "DescribeDBAccount"method = "GET"param = {"InstanceUuid": "********************"}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回示例:
{"Message": "success","Code": "Success","Data": [{"AccountType": "Super","ServiceId": "******************","AccountStatus": "available","DatabasePrivileges": [],"AccountName": "admin","AccountDescription": "123123"}, {"AccountType": "Normal","ServiceId": "******************","AccountStatus": "available","DatabasePrivileges": [{"AccountPrivilegeType": "ReadWrite","DBName": "test","TableName": "*","AccountPrivilegeDetail": "SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER"}],"AccountName": "pt","AccountDescription": ""}]}
10.DeleteDBAccount
Action:DeleteDBAccount
描述: 删除云数据库MySQL用户
请求地址:cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| AccountName | 是 | string | 需删除的账号名称 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | Object | 数据 |
| TaskId | string | 任务编号 |
请求示例:
def delete_user(instance_uuid):"""删除云数据库MySQL用户:param instance_uuid: 实例编号"""action = "DeleteDBAccount"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": "**************","AccountName": "root",}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Success","TaskId": ""}
11.DescribeModifiableDBSpec
Action:DescribeModifiableDBSpec
描述: 获取当前MySQL实例支持的配置变更的规格
请求地址:cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要初始化的实例编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| ProductName | string | 产品名称 |
| CpuRam | list | 支持的规格列表 |
| PaasGoodsId | int | 具体的产品编号,用户确定购买哪一种规格 |
| AttachDisk | list | 该类型规格能够添加的磁盘类型 |
| DiskMax | int | 单次支持最大规格的磁盘 |
| DiskValue | string | 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用) |
| BasicIops | string | 基础的磁盘的IOPS |
| DiskUnit | string | 磁盘规格单位 |
| DiskName | string | 磁盘类型名称 |
| DiskMaxExpand | string | 磁盘最大可扩容大小 |
| DiskMin | string | 磁盘最小大小 |
| DiskStep | string | 磁盘扩容大小 |
请求示例:
def get_mysql_modifiable_spec(instance_uuid):"""获取当前MySQL实例支持的配置变更的规格:param instance_uuid: 实例编号:return:"""action = "DescribeModifiableDBSpec"method = "GET"param = {"InstanceUuid": instance_uuid}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {"AttachDisk": [{"BasicIops": "3000","DiskMax": 2000,"DiskMaxExpand": 2000,"DiskMin": 100,"DiskName": "性能型","DiskStep": 100,"DiskUnit": "G","DiskValue": "high_disk"}],"CpuRam": [{"CPU": 2,"N": "2C4G","PaasGoodsId": 6704,"RAM": 4}, {"CPU": 4,"Name": "4C8G","PaasGoodsId": 6707,"RAM": 8}, {"CPU": 8,"Name": "8C16G","PaasGoodsId": 6710,"RAM": 16}, {"CPU": 8,"Name": "8C32G","PaasGoodsId": 6716,"RAM": 32}],"ProductName": "MySQL 高可用版\n","RegionId": "CN_Hongkong_A"},"Message": "Success.","TaskId": ""}
12.ModifyDBInstanceSpec
Action:ModifyDBInstanceSpec
描述: 修改数据库实例(包括常规实例和只读实例)规格或存储空间
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要修改配置的实例编号 |
| PaasGoodsId | 否 | int | 变更后规格的商品编号 |
| DiskType | 否 | string | 磁盘类型,磁盘的添加类型。只能跟最开始购买时候类型一致。不能一个实例加多种类型磁盘,比如最开始添加高性能磁盘,后面也只能选择添加高性能磁盘 |
| DiskValue | 否 | string | 新增磁盘大小 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| TaskId | string | 任务id |
请求示例:
def modify_mysql_spec(instance_uuid, ):"""修改MySQL规格(本方法同时修改了规格及加盘,如果单独修改规格,则只需传PaasGoodsId,单独加盘,需同时传DiskType、DiskValue):param instance_uuid: 实例编号"""action = "ModifyDBInstanceSpec"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"PaasGoodsId": "******","DiskType": "******","DiskValue": 100,}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Success.","TaskId": "***********"}
13.DeleteDBInstance
Action:DeleteDBInstance
描述: 删除MySQL实例
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 否 | string | 实例编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| TaskId | string | 任务id |
请求示例:
def delete_mysql(instance_uuid, ):"""删除MySQL实例:param instance_uuid: 实例编号"""action = "DeleteDBInstance"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Success.","TaskId": ""}
14.DescribeAvailableReadOnlyConfig
Action:DescribeAvailableReadOnlyConfig
描述: 获取当前MySQL主从实例支持购买的只读实例规格
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要初始化的实例编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| SubProductName | string | 子产品的名称 |
| Version | string | 产品支持的版本 |
| Architectures | string | 产品支持的架构 |
| ArchitectureName | string | 架构名称 |
| ProductId | string | 产品的id |
| ProductType | string | 产品类型 |
| ComputeRoles | list | 支持的计算类型,不通的类型支持不通的规格和支持的添加不通类型的硬盘 |
| Standards | dict | 该类型支持的规格 |
| CpuRam | list | 支持的规格信息,以及以下商品规格支持的磁盘类型 |
| PaasGoodsId | int | 具体的产品编号,用户确定购买哪一种规格(创建服务时候使用) |
| AttachDisk | list | 该类型规格能够添加的磁盘类型 |
| DiskMax | int | 单次支持最大规格的磁盘 |
| DiskValue | string | 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用) |
| AttachDisk | string | 该类型规格能够添加的磁盘类型 |
| BasicIops | string | 基础的磁盘的iops |
| DiskUnit | string | 磁盘规格 |
| DiskName | string | 磁盘类型名称 |
请求示例:
def get_mysql_modifiable_spec(instance_uuid):"""获取当前MySQL实例支持的配置变更的规格:param instance_uuid: 实例编号:return:"""action = "DescribeModifiableDBSpec"method = "GET"param = {"InstanceUuid": instance_uuid}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {"AttachDisk": [{"BasicIops": "3000","DiskMax": 2000,"DiskMaxExpand": 2000,"DiskMin": 100,"DiskName": "性能型","DiskStep": 100,"DiskUnit": "G","DiskValue": "high_disk"}],"CpuRam": [{"CPU": 2,"N": "2C4G","PaasGoodsId": "******","RAM": 4}, {"CPU": 4,"Name": "4C8G","PaasGoodsId": "******","RAM": 8}, {"CPU": 8,"Name": "8C16G","PaasGoodsId": "******","RAM": 16}, {"CPU": 8,"Name": "8C32G","PaasGoodsId": "******","RAM": 32}],"ProductName": "MySQL 高可用版\n","RegionId": "******"},"Message": "Success.","TaskId": ""}
15.CreateReadOnlyDBInstance
Action:CreateReadOnlyDBInstance
描述: 为MySQL添加只读实例(目前只支持主从版)
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号,为该数据库添加只读实例 |
| InstanceName | 是 | string | 只读实例名称 |
| PaasGoodsId | 是 | int | 只读实例商品规格,要大于等于主实例规格 |
| DiskType | 是 | string | 磁盘类型 |
| DiskValue | 是 | int | 磁盘大小,只读实例磁盘规格不能低于主实例 |
| TestGroupId | 否 | int | 是否使用测试组计费 |
| Amount | 否 | int | 购买的数量一次最多购买三个 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| TaskId | string | 任务id |
请求示例:
def create_mysql_for_readonly(instance_uuid):"""创建MySQL只读实例:param instance_uuid: 实例编号"""action = "CreateReadOnlyDBInstance"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"InstanceName": "mysql_for_readonly","PaasGoodsId": "6707","DiskType": "high_disk","DiskValue": 400, # 磁盘大小必须大于主实例"Amount": 1}
返回示例:
{"Code": "Success","Data": {},"Message": "Success.","TaskId": "***********"}
16.CreateBackup
Action:CreateBackup
描述: 为实例创建一个备份集,支持云数据库MySQL主从版实例和集群版实例
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| BackupType | 是 | string | 备份类型,取值范围: 物理全备份:”physical-backup” 逻辑备份:”logical-backup” |
| Desc | 否 | string | 备份的描述,不传默认为空字符串 |
| DBList | 否 | list | 当备份类型为逻辑备份时,用于指定数据库备份, 不填默认为整个实例备份 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| TaskId | string | 任务编号 |
请求示例:
def create_backup(instance_uuid):"""创建MySQL备份:param instance_uuid: 实例编号"""action = "CreateBackup"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"BackupType": "physical-backup", # 目前只支持物理备份"Desc": "test-openapi-python","DBList":["test1","test2"]}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Success.","TaskId": "***********"}
17.DescribeBackups
Action:DescribeBackups
描述: 查看备份集列表
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| BackupId | string | 备份id |
| Status | string | 备份状态 |
| BackupType | string | 备份类型,取值范围: 物理全备份:”physical-backup” 逻辑备份:”logical-backup” |
| StartTime | string | 开始时间 |
| EndTime | string | 结束时间 |
| BackupMode | string | 备份策略(自动备份、手动备份) |
| BackupSize | string | 备份文件大小,单位字节 |
| Desc | string | 备份描述 |
| BackupStrategy | string | 备份范围,取值范围: 整个实例:”instance” 指定数据库:”db” |
请求示例:
def get_mysql_backups(instance_uuid):"""查看备份集列表:param instance_uuid: 实例编号:return:"""action = "DescribeBackups"method = "GET"param = {"InstanceUuid": instance_uuid}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": [{"BackupId": "**************************","BackupMode": "auto","BackupSize": 677496,"BackupType": "logical-backup","Desc": "","EndTime": "2020-06-18 04:10:13","InstanceId": "**************************","StartTime": "2020-06-18 04:09:59","Status": "finished","BackupStrategy":"db"}, {"BackupId": "**************************","BackupMode": "auto","BackupSize": 677494,"BackupType": "physical-backup","Desc": "","EndTime": "2020-06-17 04:10:22","InstanceId": "**************************","StartTime": "2020-06-17 04:10:08","Status": "finished","BackupStrategy":"instance"}, {"BackupId": "**************************","BackupMode": "auto","BackupSize": 677498,"BackupType": "physical-backup","Desc": "","EndTime": "2020-06-16 04:10:17","InstanceId": "**************************","StartTime": "2020-06-16 04:10:03","Status": "finished","BackupStrategy":"instance"}, {"BackupId": "**************************","BackupMode": "manual","BackupSize": 677484,"BackupType": "physical-backup","Desc": "","EndTime": "2020-06-15 15:04:59","InstanceId": "**************************","StartTime": "2020-06-15 15:04:41","Status": "finished","BackupStrategy":"instance"}],"Message": "Success."}
18.DeleteBackup
Action:DeleteBackup
描述: 删除数据备份文件
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| BackupId | 是 | string | 备份编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| TaskId | string | 任务编号 |
请求示例:
def delete_backup(instance_uuid, backupid):"""删除数据备份文件:param backupid: 备份编号:param instance_uuid: 实例编号"""action = "DeleteBackup"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"BackupId": backupid,}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Success.","TaskId": "***********"}
19.DownloadBackup
Action:DownloadBackup
描述: 获取备份下载地址
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| BackupId | 是 | string | 备份编号 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 数据 |
| BackupId | string | 备份编号 |
| Status | string | 备份状态 |
| BackupType | string | 备份类型,取值范围: 物理全备份:”physical-backup” 逻辑备份:”logical-backup” |
| StartTime | string | 备份的开始时间 |
| EndTime | string | 备份的结束时间 |
| BackupMode | ststringr | 备份策略(自动或者手动备份) |
| BackupSize | string | 备份文件大小,单位字节 |
| Desc | string | 备份的描述(手动备份可以自定义内容),自动备份为空字符串 |
| BackupDownloadUrl | string | 公网下载地址 |
| BackupIntranetDownloadUrl | string | 内网下载地址 |
| BackupStrategy | string | 备份范围,取值范围: 整个实例:”instance” 指定数据库:”db” |
请求示例:
def get_backup_describe(instance_uuid, backupid):"""获取备份详情:param backupid: 备份编号:param instance_uuid: 实例编号:return:"""action = "DownloadBackup"method = "GET"param = {"InstanceUuid": instance_uuid,"BackupId": backupid}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {"BackupDownloadUrl": "https://gic.***************","BackupIntranetDownloadUrl": "http://88.***************","BackupMode": "auto","BackupSize": 68140,"BackupType": "physical-backup","Desc": "","EndTime": "2020-06-18 04:00:26","InstanceId": "***************","StartTime": "2020-06-18 04:00:06","Status": "finished","BackupStrategy":"instance"},"Message": "Success.","TaskId": ""}
20.ModifyDbBackupPolicy
Action:ModifyDbBackupPolicy
描述: 修改云数据库MySQL高可用版自动备份设置。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 要修改备份设置的实例编号 |
| DataBackups | 是 | object of DataBackups | 备份设置 |
DataBackupsObj
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| TimeSlot | 是 | string | 备份时间段,以整点开始,整点结束,间隔为一小时。 输入参数范围:[“00:00-01:00”,”01:00-02:00”,”02:00-03:00”,”03:00-04:00”,”04:00-05:00”,”05:00-06:00”,”06:00-07:00”,”07:00-08:00”,”08:00-09:00”,”09:00-10:00”,”10:00-11:00”,”11:00-12:00”,”12:00-13:00”,”13:00-14:00”,”14:00-15:00”,”15:00-16:00”,”16:00-17:00”,”17:00-18:00”,”18:00-19:00”,”19:00-20:00”,”20:00-21:00”,”21:00-22:00”,”22:00-23:00”,”23:00-24:00”] |
| DateList | 是 | list of string | 备份周期,输入参数范围:[“0”,”1”,”2”,”3”,”4”,”5”,”6”],0为星期日,1为星期一,以此类推 |
| Sign | 是 | int | 自动备份开关,关闭:0 ,开启:1 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Code | string | 状态码 |
| Message | string | 信息描述 |
请求示例:
def modify_mysql_backup_policy(instance_uuid):"""修改云数据库MySQL高可用版自动备份设置:param instance_uuid: 实例编号"""action = "ModifyDbBackupPolicy"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": instance_uuid,"DataBackups": {"TimeSlot": "13:00-14:00","DateList": ["0", "1", "2", "3", "4", "5", "6"],"Sign": 1}}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Message": "success"}
21.DescribeDBInstancePerformance
Action:DescribeDBInstancePerformance
描述: 获取云数据库MySQL监控指标
请求地址: http://cdsapi.capitalonline.net/paas/monitor
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| MetricKey | 是 | string | 可选指标参数(见下表) |
| StartTime | 是 | string | 开始时间 |
| EndTime | 是 | string | 结束时间 |
性能参数表:
| API参数名 | 类别 | 类型 | 单位 | 含义 |
|---|---|---|---|---|
| mysql_cpu_usage | resources | gauge | 百分比 | cpu使用率 |
| mysql_mem_usage | resources | gauge | 百分比 | 内存使用率 |
| mysql_space_usage | resources | gauge | 百分比 | 挂载的数据磁盘容量使用百分比 |
| mysql_network_trffice | resources | gauge | MB/s | 业务网卡流量大小每秒,包括进入流量和出去流量 |
| mysql_sessions | engine | gauge | 个 | 当前打开的连接的数量 |
| mysql_slow_queries | engine | gauge | 个 | 查询时间超过 long_query_time 秒的查询的个数 |
时间粒度:
监控粒度自适应方法如下:
| 时间跨度 | 监控粒度 | 自适应说明 | 保留时长 |
|---|---|---|---|
| (0h, 4h] | 30s | 时间跨度在4小时内,监控粒度为5秒 | 1天 |
| (4h, 2d] | 1min | 时间跨度超过4小时,但在2天内,监控粒度调整为1分钟 | 15天 |
| (2d, 10d] | 5min | 时间跨度超过2天,但在10天内,监控粒度调整为5分钟 | 31天 |
| (10d, 30d] | 1h | 时间跨度超过10天,但在30天内,监控粒度调整为1小时 | 62天 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| Message | str | 信息描述 |
| Code | str | 状态码 |
| Data | dict | 数据 |
| InstanceUuid | str | 实例编号 |
| ProductType | str | 产品类型 |
| MetricKey | string | 性能指标参数 |
| Period | int | 监控粒度(根据时间跨度自适应监控粒度,单位为秒) |
| StartTime | string | 开始时间 |
| EndTime | string | 结束时间 |
| DataPoints | list | 监控数据集合 |
| MetricName | string | 性能指标名称 |
| MetricType | string | 指标类型(gauge,counter) |
| MonitorType | list | 监控类型(resources,engine, engine_extension, deploy) |
| Values | list | 监控数据列表 |
| Value | float | 监控数值 |
| DataTime | string | 监控时间点 |
请求示例:
def get_instance_Performance(instance_uuid, metric_key, start_time, end_time):"""获取MySQL监控:param instance_uuid: 实例uuid:param metric_key: 性能指标参数:param start_time: 开始时间:param end_time: 结束时间"""action = "DescribeDBInstancePerformance"method = "POST"param = {}url = get_signature(action, AccessKey, SecretAccessKey, method, monitor_url, param=param)body = {"InstanceUuid": instance_uuid,"MetricKey": metric_key,"StartTime": start_time,"EndTime": end_time}res = requests.post(url, json=body).json()print(res)
返回示例:
{"Code": "Success","Data": {"DataPoints": [{"MetricName": "slow_queries","MetricType": "counter","MonitorType": "engine","Unit": "次","Values": [{"DateTime": "2020-11-03 14:33:24","Value": 4}, {"DateTime": "2020-11-03 14:33:54","Value": 15}, {"DateTime": "2020-11-03 14:34:24","Value": 35}, {"DateTime": "2020-11-03 14:34:54","Value": 67}]}],"EndTime": "2020-11-03 14:35:00","InstanceUuid": "b6120f04-63ab-491c-9049-54fca54102bf","MetricKey": "mysql_slow_queries","Period": 30,"ProductType": "mysql-replication","StartTime": "2020-11-03 14:28:00"},"Message": "success","TaskId": ""}
22.DescribeDBParameter
Action:DescribeDBParameter
描述: 获取云数据库MySQL参数列表。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
返回参数:
| 名称 | 类型 | 描述 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | DataObj | 数据 |
查询参数DataObj
| 名称 | 类型 | 描述 |
|---|---|---|
| Parameters | list of ParametersObj | 参数信息 |
ParametersObj
| 名称 | 类型 | 描述 |
|---|---|---|
| DefaultValue | string | 参数默认值 |
| CurrentValue | string | 运行参数值 |
| Description | string | 参数描述 |
| IsModify | string | 是否可修改 |
| CheckingCode | string | 可修改参数值 |
| IsRestart | string | 是否重启 |
| Name | string | 参数名 |
请求示例:
def get_mysql_parameter_info():"""获取MySQL参数列表"""action = "DescribeDBParameter"method = "GET"param = {"InstanceUuid": "********************"}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回示例:
{"Code": "Success","Data": {"Parameters": [{"CheckingCode": "[10-84]","CurrentValue": "84","DefaultValue": "84","Description": "Maximum length of words that are stored in an InnoDB FULLTEXT index.","IsModify": "true","IsRestart": "true","Name": "innodb_ft_max_token_size"}]},"Message": "success"}
23.DescribeDBParameterModifyHistory
Action:DescribeDBParameterModifyHistory
描述: 获取云数据库MySQL参数修改历史。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: GET
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| StartTime | 是 | string | 开始时间 |
| EndTime | 是 | string | 结束时间 |
返回参数:
| 名称 | 类型 | 描述 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | DataObj | 数据 |
查询参数修改历史DataObj
| 名称 | 类型 | 描述 |
|---|---|---|
| IsValid | bool | 是否生效 |
| ModifyTime | string | 变更时间 |
| ModifyRole | string | 操作者 |
| OldParameterValue | string | 变更前的参数值 |
| NewParameterValue | string | 变更后的参数值 |
| StatusMessage | string | 状态描述 |
| ParameterName | string | 参数名 |
请求示例:
def get_mysql_parameter_history():"""获取MySQL参数修改历史"""action = "DescribeDBParameterModifyHistory"method = "GET"param = {"InstanceUuid": "********************","StartTime": "2022-02-01 17:16:08","EndTime": "2022-02-18 17:16:08"}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)res = requests.get(url)result = json.loads(res.content)result = json.dumps(result) # json格式化print(result)
返回示例:
{"Code": "Success","Data": [{"IsValid": ture,"ModifyRole": "用户","ModifyTime": "2022-02-17 15:34:06","NewParameterValue": "74.43","OldParameterValue": "74.43","ParameterName": "innodb_max_dirty_pages_pct","StatusMessage": "已生效"}],"Message": "success"}
24.ModifyDBParameter
Action:ModifyDBParameter
描述: 修改云数据库MySQL参数。
请求地址: cdsapi.capitalonline.net/mysql
请求方法: POST
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| InstanceUuid | 是 | string | 实例编号 |
| Parameters | 是 | list of ParametersObj | 待修改参数 |
修改参数ParametersObj
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Name | 是 | string | 参数名称 |
| Value | 是 | string | 参数值 |
返回参数:
| 名称 | 类型 | 描述 |
|---|---|---|
| Message | string | 信息描述 |
| Code | string | 状态码 |
| Data | dict | 参数修改历史查询数据 |
| TaskId | string | 任务编号 |
请求示例:
def modify_mysql_parameter(instance_uuid):"""修改云数据库MySQL参数:param instance_uuid: 实例编号"""action = "ModifyDBParameter"method = "POST"param = {}url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)body = {"InstanceUuid": "************","Parameters": [{"Name": "back_log","Value": "345"}, {"Name": "connect_timeout","Value": "145"}]}res = requests.post(url, json=body)result = json.loads(res.content)print(result)
返回示例:
{"Code": "Success","Data": {},"Message": "Parameter configuration is being configured","TaskId": "42a73680-af4d-498e-b6a2-416fec04ca44"}
