OpenAPI文档
  • 基础、平台产品
  • CDN
  • Kafka
  • Memcached
  • MongoDB
  • MySQL
    • Redis
    • 对象存储
    • 对象存储(v1.1)
    • 负载均衡
    • 新版MongoDB
    • Vira
    • Vira2
    • OpenAPI
    • MySQL

    MySQL

    # MySQL 公开API目录

    • MySQL 公开API目录
      • API概览
        • 实例
        • 账号
        • 备份
        • 只读实例
        • 监控
        • 参数
        • 错误码
      • 访问地址
      • 1.DescribeRegions
      • 2.DescribeAvailableDBConfig
        • DataObj
        • ProductObj
        • ArchitectureObj
        • ComputeRoleObj
        • StandardObj
        • AttachDiskObj
        • CpuRamObj
        • NetworkLinkObj
      • 3.CreateDBInstance
      • 4.DescribeDBInstances
      • 5.CreatePrivilegedAccount
      • 6.ModifyDbPrivilege
        • OperationsObj
        • ExtraPrivilegeObj
      • 7.DeleteDbPrivilege
      • 8.DescribeDbPrivileges
        • 查询权限DataObj
      • 9.DescribeDBAccount
        • 查询用户DataObj
        • DatabasePrivilegesObj
        • 查询用户ExtraPrivilegeObj
      • 10.DeleteDBAccount
      • 11.DescribeModifiableDBSpec
      • 12.ModifyDBInstanceSpec
      • 13.DeleteDBInstance
      • 14.DescribeAvailableReadOnlyConfig
        • 查询只读实例规格DataObj
        • 查询只读实例规格ComputeRolesObj
        • 查询只读实例规格StandardObj
        • 查询只读实例规格AttachDiskObj
        • 查询只读实例规格CpuRamObj
      • 15.CreateReadOnlyDBInstance
      • 16.CreateBackup
      • 17.DescribeBackups
      • 18.DeleteBackup
      • 19.DownloadBackup
      • 20.ModifyDbBackupPolicy
        • DataBackupsObj
      • 21.DescribeDBInstancePerformance
      • 22.DescribeDBParameter
        • 查询参数DataObj
        • ParametersObj
      • 23.DescribeDBParameterModifyHistory
        • 查询参数修改历史DataObj
      • 24.ModifyDBParameter
        • 修改参数ParametersObj

    # 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)
    
    1
    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": "CN_Beijing_H",
            "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.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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    返回参数:

    参数名 类型 说明
    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": ""
    }
    
    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

    # 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个
    ServicePort 否 int MySQL实例端口,默认3306,取值范围:1024-65535(9100和9101无效)

    返回参数:

    参数名 类型 说明
    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,
            "ServicePort": 6033,
            "Password": "******",
            "Amount": 1
        }
    
        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
    23
    24

    返回示例:

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

    # 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 只读实例列表
    SubProductKey string 子产品的英文名
    SubProductName string 子产品的名字
    Version string MySQL的版本
    LinkType string 链路类型:英文
    Status string 实例状态
    StatusStr string 状态对应的中文
    InstanceUuid string 实例编号
    InstanceName string 实例名称
    CreatedTime string 实例创建时间
    ResourceId string 账单ID,查询账单时的唯一标识
    ProjectName 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    返回示例:

    {
        "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,
            "ProjectName": "默认项目",
            "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": "运行中",
            "SubProductKey": "mysql-replication",
            "SubProductName": "MySQL 高可用版",
            "VdcId": "d459c74b-d60e-4f28-adbb-67be402f76f3",
            "VdcName": "香港PaaS1",
            "Version": "5.7.24"
        }],
        "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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    返回示例:

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

    # 6.ModifyDbPrivilege

    Action:ModifyDbPrivilege

    描述: 更新(添加、修改)云数据库MySQL普通用户权限

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

    请求方法: POST

    请求参数:

    参数名 必选 类型 说明
    InstanceUuid 是 string 要更新用户权限的实例编号
    AccountName 是 string 普通用户的账号名称
    Operations 是 list of Operations 账号赋权数据库与对应权限列表
    ExtraPrivilege 否 ExtraPrivilegeObj 附加权限

    # OperationsObj

    参数名 必选 类型 说明
    DBName 是 string 需要赋权的数据库名称
    Privilege 是 string 数据库对应账号权限。
    ReadWrite:读写权限
    DMLOnly:仅DML
    ReadOnly:只读权限
    DDLOnly:仅DDL

    # ExtraPrivilegeObj

    参数名 必选 类型 说明
    AllCreate 否 string 普通账号全局create权限,默认false,取值范围:["ture","false"]

    返回参数:

    参数名 类型 说明
    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"
        	}],
            "ExtraPrivilege": {
                "AllCreate": "true"
            }
        }
    
        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
    23
    24
    25
    26
    27

    返回示例:

    {
        "Code": "Success",
        "Message": "Success."
    }
    
    1
    2
    3
    4

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    返回示例:

    {
        "Code": "Success",
        "Message": "success"
    }
    
    1
    2
    3
    4

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    返回示例:

    {
        "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"
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    # 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 数据库权限详情
    ExtraPrivilege ExtraPrivilegeObj 附加权限

    # DatabasePrivilegesObj

    参数名 类型 说明
    AccountPrivilegeType string 数据库对应账号权限。
    ReadWrite:读写权限
    DMLOnly:仅DML
    ReadOnly:只读权限
    DDLOnly:仅DDL
    DBName string 已授权数据库名称
    TableName string 已授权数据表名称
    AccountPrivilegeDetail string 账号权限详情

    # 查询用户ExtraPrivilegeObj

    参数名 类型 说明
    AllCreate string 普通账号全局create权限,默认false,取值范围:["ture","false"]

    请求示例:

    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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    返回示例:

    {
        "Code": "Success",
        "Data": [{
            "AccountDescription": "",
            "AccountName": "admin",
            "AccountStatus": "available",
            "AccountType": "Super",
            "DatabasePrivileges": null,
            "ExtraPrivilege": null,
            "ServiceId": "********************"
        }, {
            "AccountDescription": "",
            "AccountName": "pt",
            "AccountStatus": "available",
            "AccountType": "Normal",
            "DatabasePrivileges": [{
                "AccountPrivilegeDetail": "CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE",
                "AccountPrivilegeType": "DDLOnly",
                "DBName": "test",
                "TableName": "*"
            }],
            "ExtraPrivilege": {
                "AllCreate": "true"
            },
            "ServiceId": "********************"
        }],
        "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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    返回示例:

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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    返回示例:

    {
        "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": ""
    }
    
    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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    返回示例:

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

    # 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)
    
    1
    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

    # 14.DescribeAvailableReadOnlyConfig

    Action:DescribeAvailableReadOnlyConfig

    描述: 获取当前MySQL主从实例支持购买的只读实例规格

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

    请求方法: GET

    请求参数:

    参数名 必选 类型 说明
    InstanceUuid 是 string 要初始化的实例编号

    返回参数:

    参数名 类型 说明
    Code string 状态码
    Data DataObj 可购买的MySQL只读实例规格数据对象
    Message string 返回调用接口状态信息和code相对应,比如:Success, Error

    # 查询只读实例规格DataObj

    参数名 类型 说明
    ArchitectureName string 架构名称
    ComputeRoles list of ComputeRolesObj 支持的计算类型,不同的计算类型支持不同规格,并支持添加不同类型的硬盘
    SubProductName string 子产品名称,比如:MySQL 只读实例
    Version string 产品支持的版本

    # 查询只读实例规格ComputeRolesObj

    参数名 类型 说明
    ComputeName string 计算类型名称, 比如:通用型
    Standards StandardObj 该类型支持的规格

    # 查询只读实例规格StandardObj

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

    # 查询只读实例规格AttachDiskObj

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

    # 查询只读实例规格CpuRamObj

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

    请求示例:

    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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    返回示例:

    {
        "Code": "Success",
        "Data": {
            "ArchitectureName": "主从",
            "ComputeRoles": [{
                "ComputeName": "通用型",
                "Standards": {
                    "AttachDisk": [{
                        "BasicIops": "",
                        "DiskMax": 4000,
                        "DiskMaxExpand": 2000,
                        "DiskMin": 100,
                        "DiskName": "SSD",
                        "DiskStep": 100,
                        "DiskUnit": "G",
                        "DiskValue": "ssd_disk"
                    }, {
                        "BasicIops": "",
                        "DiskMax": 4000,
                        "DiskMaxExpand": 2000,
                        "DiskMin": 100,
                        "DiskName": "性能型",
                        "DiskStep": 100,
                        "DiskUnit": "G",
                        "DiskValue": "high_disk"
                    }],
                    "CpuRam": [{
                        "CPU": 2,
                        "Name": "2C4G",
                        "PaasGoodsId": 15686,
                        "RAM": 4
                    }, {
                        "CPU": 4,
                        "Name": "4C8G",
                        "PaasGoodsId": 15688,
                        "RAM": 8
                    }, {
                        "CPU": 4,
                        "Name": "4C16G",
                        "PaasGoodsId": 15690,
                        "RAM": 16
                    }, {
                        "CPU": 8,
                        "Name": "8C16G",
                        "PaasGoodsId": 15692,
                        "RAM": 16
                    }, {
                        "CPU": 8,
                        "Name": "8C32G",
                        "PaasGoodsId": 15694,
                        "RAM": 32
                    }, {
                        "CPU": 16,
                        "Name": "16C64G",
                        "PaasGoodsId": 15696,
                        "RAM": 64
                    }]
                }
            }],
            "SubProductName": "MySQL 只读实例",
            "Version": "8.0"
        },
        "Message": "获取只读规格列表成功。"
    }
    
    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

    # 15.CreateReadOnlyDBInstance

    Action:CreateReadOnlyDBInstance

    描述: 为MySQL添加只读实例(目前只支持主从版)

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

    请求方法: POST

    请求参数:

    参数名 必选 类型 说明
    InstanceUuid 是 string 实例编号,为该数据库添加只读实例
    InstanceName 是 string 只读实例名称
    PaasGoodsId 是 int 只读实例商品规格,要大于等于主实例规格
    DiskType 是 string 磁盘类型
    DiskValue 是 int 磁盘大小,只读实例磁盘规格不能低于主实例
    TestGroupId 否 int 是否使用测试组计费
    Amount 否 int 购买的数量一次最多购买三个
    ServicePort 否 int MySQL实例端口,默认3306,取值范围:1024-65535(9100和9101无效)

    返回参数:

    参数名 类型 说明
    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,
            "ServicePort": 6033,
            "DiskType": "high_disk",
            "DiskValue": 400,  # 磁盘大小必须大于主实例
            "Amount": 1
        }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    返回示例:

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

    # 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": "logical-backup", 
            "Desc": "test-openapi-python",
            "DBList":[
                "test1",
                "test2"
            ]
        }
        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

    返回示例:

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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    返回示例:

    {
        "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."
    }
    
    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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    返回示例:

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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    返回示例:

    {
        "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": ""
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    返回示例:

    {
        "Code": "Success",
        "Message": "success"
    }
    
    1
    2
    3
    4

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    返回示例:

    {
        "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": ""
    }
    
    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

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    返回示例:

    {
        "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"
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    # 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)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    返回示例:

    {
        "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"
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    # 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)
    
    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

    返回示例:

    {
        "Code": "Success",
        "Data": {},
        "Message": "Parameter configuration is being configured",
        "TaskId": "42a73680-af4d-498e-b6a2-416fec04ca44"
    }
    
    1
    2
    3
    4
    5
    6
    MongoDB
    Redis

    ← MongoDB Redis→