华为云用户手册

  • 数据库查询操作 MySQL查询操作。 输入参数 用户配置发布消息执行动作,相关参数说明如表2所示。 表2 MySQL查询操作输入参数说明 参数 必填 说明 tableName 是 要查询的MySQL的表名称。 columnList 是 要查询的MySQL的列名称。 condition 是 查询的过滤条件。 输出参数 用户可以在之后的执行动作中调用该输出参数,相关参数如表3所示。 表3 MySQL查询操作输出参数说明 参数 说明 返回 查询结果。
  • 操作步骤 删除DDS实例。 接口相关信息 URI格式 DELETE https://{Endpoint}/v3/{project_id}/instances/{instance_id} {Endpoint}信息请从地区和终端节点获取。 URI样例 https://dds.cn-north-1.myhuaweicloud.com/v3/0549b4a43100d4f32f51c01c2fe4acdb/instances/9136fd2a9fcd405ea4674276ce36dae8in02 详情请参见删除实例。 请求示例 无。 响应示例 { "job_id": "252f11f1-2912-4c06-be55-1999bde659c5"}
  • 操作步骤 指定limit与offset查询DDS实例列表。 接口相关信息 URI格式:GET https://{Endpoint}/v3/{project_id}/instances?id={id}&name={name}&mode={mode}&datastore_type={datastore_type}&vpc_id={vpc_id}&subnet_id={subnet_id}&offset={offset}&limit={limit} {Endpoint}信息请从地区和终端节点获取。 {limit}可根据DDS实例数据调整。 详情请参见查询实例列表和详情。 请求示例 根据指定limit与offset查询DDS实例列表 https://dds.cn-north-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances?offset=0&limit=1 响应示例 根据指定limit与offset查询DDS实例列表: { "instances": [ { "id": "8436a91546294036b75931e879882200in02", "name": "dds-efa6", "status": "normal", "port": 8635, "mode": "ReplicaSet", "region": "aaa", "datastore": { "type": "DDS-Community", "version": "3.4" }, "engine": "wiredTiger", "created": "2019-01-17T07:05:52", "updated": "2019-01-17T07:05:47", "db_user_name": "rwuser", "ssl": "1", "vpc_id": "674e9b42-cd8d-4d25-a2e6-5abcc565b961", "subnet_id": "f1df08c5-71d1-406a-aff0-de435a51007b", "security_group_id": "7aa51dbf-5b63-40db-9724-dad3c4828b58", "backup_strategy": { "start_time": "16:00-17:00", "keep_days": 7 }, "pay_mode": "0", "maintenance_window": "02:00-06:00", "groups": [ { "type": "replica", "volume": { "size": "10", "used": "0.33" }, "nodes": [ { "id": "233eaac9c6f245c0bb9c2d21eea12d1bno02", "name": "dds-efa6_replica_node_2", "status": "normal", "role": "Primary", "private_ip": "192.168.0.174", "public_ip": "", "spec_code": "dds.mongodb.s2.medium.4.repset", "availability_zone": "bbb" }, { "id": "d57d76d6320a4a7b86db82c317550c4ano02", "name": "dds-efa6_replica_node_1", "status": "normal", "role": "Hidden", "private_ip": "192.168.0.39", "public_ip": "", "spec_code": "dds.mongodb.s2.medium.4.repset", "availability_zone": "bbb" }, { "id": "f46b0a1cf4d9400e9fd7af17f8742d37no02", "name": "dds-efa6_replica_node_3", "status": "normal", "role": "Secondary", "private_ip": "192.168.0.176", "public_ip": "", "spec_code": "dds.mongodb.s2.medium.4.repset", "availability_zone": "bbb" } ] } ], "enterprise_project_id": "0", "time_zone": "", "actions": [ ] } ], "total_count": 24} 汇总查询结果。 参考1持续调用,如果查询的DDS实例列表为空,或者返回的body体中不存在instances字段,表明所有DDS实例查询完成。 汇总所有查询到的DDS实例即当前查询条件下的所有DDS实例。
  • 操作步骤 修改DDS实例名称。 接口相关信息 URI格式 PUT https://{Endpoint}/v3/{project_id}/instances/{instance_id}/modify-name {Endpoint}信息请从地区和终端节点获取。 URI样例 https://dds.cn-north-1.myhuaweicloud.com/v3/0549b4a43100d4f32f51c01c2fe4acdb/instances/9136fd2a9fcd405ea4674276ce36dae8in02/modify-name 详情请参见修改实例名称。 请求示例 { "new_instance_name": "myNewName"} 响应示例 {}
  • 文档数据库服务授权项说明 表1 实例管理 权限 对接API接口 授权项(Action) IAM 项目(Project) 企业项目(Enterprise Project) 创建实例 POST /v3/{project_id}/instances dds:instance:create vpc:vpcs:list vpc:vpcs:get vpc:subnets:get vpc:securityGroups:get vpc:ports:get √ √ 查询实例列表 GET /v3/{project_id}/instances?id={id}&name={name}&mode={mode}&datastore_type={datastore_type}&vpc_id={vpc_id}&subnet_id={subnet_id}&offset={offset}&limit={limit} dds:instance:list √ √ 删除实例 DELETE /v3/{project_id}/instances/{instance_id} dds:instance:deleteInstance √ √ 重启实例 POST /v3/{project_id}/instances/{instance_id}/restart dds:instance:reboot √ √ 扩容实例存储容量 POST /v3/{project_id}/instances/{instance_id}/enlarge-volume dds:instance:extendVolume √ √ 扩容集群实例的节点数量 POST /v3/{project_id}/instances/{instance_id}/enlarge dds:instance:extendNode vpc:vpcs:list vpc:vpcs:get vpc:subnets:get vpc:securityGroups:get vpc:ports:get √ √ 变更实例规格 POST /v3/{project_id}/instances/{instance_id}/resize dds:instance:modifySpec √ √ 切换副本集实例的主备节点 POST /v3/{project_id}/instances/{instance_id}/switchover dds:instance:switchover √ √ 切换SSL开关 POST/v3/{project_id}/instances/{instance_id}/switch-ssl dds:instance:modifySSL √ √ 修改实例名称 PUT /v3/{project_id}/instances/{instance_id}/modify-name dds:instance:modify √ √ 修改数据库端口 POST /v3/{project_id}/instances/{instance_id}/modify-port dds:instance:modifyPort √ √ 变更实例安全组 POST /v3/{project_id}/instances/{instance_id}/modify-security-group dds:instance:modifySecurityGroup √ √ 绑定弹性公网IP POST /v3/{project_id}/nodes/{node_id}/bind-eip dds:instance:bindPublicIp √ √ 解绑弹性公网IP POST /v3/{project_id}/nodes/{node_id}/unbind-eip dds:instance:unbindPublicIp √ √ 修改实例内网地址 POST /v3/{project_id}/instances/{instance_id}/modify-internal-ip dds:instance:modifyVIP √ √ 打开集群的Shard/Config IP开关 POST /v3/{project_id}/instances/{instance_id}/create-ip dds:instance:createIp √ √ 查询实例可迁移到的可用区 GET /v3/{project_id}/instances/{instance_id}/migrate/az dds:instance:migrate √ √ 实例可用区迁移 POST /v3/{project_id}/instances/{instance_id}/migrate dds:instance:migrate √ √ 表2 连接管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询实例节点会话 GET /v3/{project_id}/nodes/{node_id}/sessions dds:instance:session √ √ 终结实例节点会话 POST /v3/{project_id}/nodes/{node_id}/session dds:instance:session √ √ 查询实例节点连接数统计 GET /v3/{projectId}/instances/{instance_id}/conn-statistics dds:instance:list √ √ 表3 备份与恢复 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 创建手动备份 POST /v3/{project_id}/backups dds:instance:createManualBackup √ √ 删除手动备份 DELETE /v3/{project_id}/backups/{backups_id} dds:backup:delete √ √ 查询备份列表 GET /v3/{project_id}/backups?instance_id={instance_id}&backup_id={backup_id}&backup_type={backup_type}&offset={offset}&limit={limit}&begin_time={begin_time}&end_time={end_time}&mode={mode} dds:backup:list √ √ 查询自动备份策略 GET /v3/{project_id}/instances/{instance_id}/backups/policy dds:instance:list √ √ 设置自动备份策略 PUT /v3/{project_id}/instances/{instance_id}/backups/policy dds:instance:modifyBackupPolicy √ √ 恢复到新实例 POST /v3/{project_id}/instances dds:instance:create vpc:vpcs:list vpc:vpcs:get vpc:subnets:get vpc:securityGroups:get vpc:ports:get √ √ 获取备份下载链接 GET /v3/{projectId}/backups/download-file dds:backup:download √ √ 查询可恢复的时间段 GET /v3/{project_id}/instances/{instance_id}/restore-time dds:instance:list √ √ 获取可恢复的数据库列表 GET /v3/{project_id}/instances/{instance_id}/restore-database dds:instance:list √ √ 获取可恢复的数据库集合列表 GET /v3/{project_id}/instances/{instance_id}/restore-collection dds:instance:list √ √ 恢复到当前实例 POST /v3/{project_id}/instances/recovery dds:backup:refreshInstanceFromBackup √ √ 库表级时间点恢复 POST /v3/{project_id}/instances/{instance_id}/restore/collections dds:backup:refreshInstanceFromBackup √ √ 表4 参数配置 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 获取参数模板列表 GET /v3/{project_id}/configurations dds:param:list √ √ 创建参数模板 PUT /v3/{project_id}/configurations dds:param:create √ √ 删除参数模板 DELETE /v3/{project_id}/configurations/{config_id} dds:param:delete √ √ 获取参数模板的详情 GET /v3/{projectId}/configurations/{configId} dds:param:list √ √ 修改参数模板 PUT /v3/{project_id}/configurations/{config_id} dds:param:modify √ √ 应用参数模板 PUT /v3/{project_id}/configurations/{config_id}/apply dds:instance:modifyParameter √ √ 获取指定实例的参数信息 GET /v3/{project_id}/instances/{instance_id}/configurations dds:param:list √ √ 修改指定实例的参数 PUT /v3/{project_id}/instances/{instance_id}/configurations dds:instance:modifyParameter √ √ 表5 获取日志信息 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询数据库慢日志 GET /v3/{project_id}/instances/{instance_id}/slowlog dds:instance:list √ √ 获取慢日志下载链接 POST /v3/{project_id}/instances/{instance_id}/slowlog-download dds:instance:list √ √ 查询数据库错误日志 GET /v3/{project_id}/instances/{instance_id}/errorlog dds:instance:list √ √ 获取错误日志下载链接 POST /v3/{project_id}/instances/{instance_id}/errorlog-download dds:instance:list √ √ 设置审计日志策略 POST /v3/{project_id}/instances/{instance_id}/auditlog-policy dds:instance:modifyAuditLogSwitch √ √ 查询审计日志策略 GET /v3/{project_id}/instances/{instance_id}/auditlog-policy dds:instance:list √ √ 查询审计日志列表 GET /v3/{project_id}/instances/{instance_id}/auditlog dds:instance:list √ √ 获取审计日志下载链接 POST /v3/{project_id}/instances/{instance_id}/auditlog-links dds:instance:downloadAuditLog √ √ 表6 标签管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 批量添加或删除资源标签 POST /v3/{project_id}/instances/{instance_id}/tags/action dds:instance:modify √ √ 查询资源标签 GET /v3/{project_id}/instances/{instance_id}/tags dds:instance:list √ √ 表7 管理数据库和用户 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 创建数据库用户 POST /v3/{project_id}/instances/{instance_id}/db-user dds:instance:createDatabaseUser √ √ 创建数据库角色 POST /v3/{project_id}/instances/{instance_id}/db-role dds:instance:createDatabaseRole √ √ 删除数据库用户 DELETE /v3/{project_id}/instances/{instance_id}/db-user dds:instance:deleteDatabaseUser √ √ 删除数据库角色 DELETE /v3/{project_id}/instances/{instance_id}/db-role dds:instance:deleteDatabaseRole √ √ 修改数据库用户密码 PUT /v3/{project_id}/instances/{instance_id}/reset-password dds:instance:resetPasswd √ √ 查询数据库用户列表 GET /v3/{project_id}/instances/{instance_id}/db-user/detail? offset ={offset}&limit={limit}&user_name={user_name }&db_name={db_name} dds:instance:get √ √ 查询数据库角色列表 GET /v3/{project_id}/instances/{instance_id}/db-roles?role_name={role_name}&db_name={db_name}&offset={offset}&limit={limit} dds:instance:get √ √ 查询和设置集群均衡器 GET /v3/{project_id}/instances/{instance_id}/balancer PUT /v3/{project_id}/instances/{instance_id}/balancer/{action} PUT /v3/{project_id}/instances/{instance_id}/balancer/active-window dds:instance:balancer √ √ “√”表示支持,“x”表示暂不支持。 父主题: 权限策略和授权项
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见IAM与企业管理的区别。 DDS支持的自定义策略授权项请参见文档数据库服务授权项说明。
  • 状态码 正常 状态码 编码 状态说明 200 OK 请求成功。 202 Accepted 异步请求成功提交。 异常 状态码 编码 状态说明 304 Not modified 请求失败。 请求参数不符合规则。 400 Bad Request 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法,请确认用户名和密码是否正确。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 Not Found 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 Method Not Allowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not acceptable 实例不是副本集,当前实例不允许此操作。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 422 Unprocessable Entity 请求格式正确,但是由于含有语义错误,无法响应。 500 Internal Server Error 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 503 Service Unavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 父主题: 附录
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 修订记录 发布日期 更新特性 2021-07-30 第二十次正式发布。 新增如下接口: 修改实例备注 设置慢日志明文开关 获取指定ID的任务信息 2021-05-30 第十九次正式发布。 新增如下接口: 查询配额 2021-04-30 第十八次正式发布。 新增如下接口: 副本集跨网段访问配置 查询实例可迁移到的可用区 实例可用区迁移 2021-03-30 第十七次正式发布。 端口有效范围支持2100-9500,27017,27018,27019。 新增如下接口: 查询实例节点连接数统计 查询集群均衡设置 设置集群均衡开关 设置集群均衡活动时间窗 删除数据库用户 删除数据库角色 2021-02-28 第十六次正式发布。 新增如下接口: 查询实例节点会话 终结实例节点会话 2020-12-30 第十五次正式发布。 新增如下接口: 创建集群的Shard/Config IP 2020-12-15 第十四次正式发布。 新增如下接口: 查询可恢复的时间段 获取可恢复的数据库列表 获取可恢复的数据库集合列表 恢复到当前实例 库表级时间点恢复 查询数据库错误日志 获取错误日志下载链接 设置审计日志策略 查询审计日志策略 获取审计日志列表 获取审计日志下载链接 2020-11-30 第十三次正式发布。 新增如下接口: 查询数据库慢日志 获取慢日志下载链接 2020-10-30 第十二次正式发布。 资源标签支持20个配额。 新增如下接口: 创建数据库用户 创建数据库角色 查询数据库用户列表 查询数据库角色列表 修改数据库用户密码 2020-09-30 第十一次正式发布。 下线社区增强版实例。 构造请求和认证鉴权,新增AK/SK认证方式。 2020-08-30 第十次正式发布。 新增获取备份下载链接,支持下载备份文件。 在创建实例和恢复到新实例中支持副本集存储空间最大值调整到3000GB。 2020-07-30 第九次正式发布。 在创建实例,扩容集群实例的节点数量和恢复到新实例中支持mongos和shard类型的节点数量为32个。 2020-07-15 第八次正式发布。 新增查询数据库磁盘类型。 支持DCC能力。 2020-04-30 第七次正式发布。 新增切换副本集实例的主备节点。 新增切换SSL开关。 新增修改数据库用户密码。 新增变更实例安全组。 新增绑定弹性公网IP。 新增修改实例名称。 新增修改数据库端口。 新增解绑弹性公网IP。 新增修改实例内网地址。 2020-03-31 第六次正式发布。 在文档数据库服务监控指标说明中新增如下监控指标。 mongo044_swap_usage mongo050_top_total_time mongo051_top_read_time mongo052_top_write_time mongo053_wt_flushes_status mongo054_wt_cache_used_percent mongo055_wt_cache_dirty_percent 2020-01-06 第五次正式发布。 在查询数据库规格中新增参数“az_status”。 2019-11-11 第四次正式发布。 在创建实例的请求和响应中新增参数“ssl_option”。 修改扩容实例存储容量中参数“size”的描述。 2019-10-18 第三次正式发布。 修改查询资源实例、批量添加或删除资源标签、查询资源标签、查询项目标签中的约束说明和“tags”字段的描述。 修改文档数据库服务授权项说明。 新增错误码“DBS.280408”。 2019-08-13 第二次正式发布。 修改创建实例中参数“num”的描述。 修改扩容集群实例的节点数量中参数“num”的描述。 2019-04-19 第一次正式发布。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域 指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户的要求,或满足不同地区的法律或其他要求。 可用区 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 企业项目 企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 父主题: 使用前必读
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • API概览 文档数据库服务所提供的接口为扩展接口。通过使用文档数据库服务接口,您可以使用文档数据库服务的部分功能,具体如下表所示。 表1 接口说明 类型 描述 查询API版本 包括查询API版本信息列表、查询指定API版本信息接口。 查询数据库版本信息 查询指定实例类型的数据库版本信息。 查询数据库规格 查询指定条件下的所有实例规格信息。 查询数据库磁盘类型 查询当前区域下的数据库磁盘类型。 实例管理 包括创建实例、重启实例、删除实例、查询实例列表、扩容实例存储容量、扩容集群实例的节点数量、变更实例规格、切换副本集实例的主备节点、切换SSL开关、修改实例名称、修改数据库端口、变更实例安全组、绑定弹性公网IP、解绑弹性公网IP、修改实例内网地址、打开集群的Shard/Config IP开关接口、副本集跨网段访问配置、查询实例可迁移到的可用区、实例可用区迁移。 连接管理 包括查询实例节点会话、终结实例节点会话、查询实例节点连接数统计接口。 备份与恢复 包括创建手动备份、删除手动备份、查询备份列表、查询自动备份策略、设置自动备份策略、恢复到新实例、获取备份下载链接、查询可恢复的时间段、获取可恢复的数据库列表、获取可恢复的数据库集合列表、获取到当前实例、库表级时间点恢复接口。 参数配置 包括获取参数模板列表、创建参数模板、删除参数模板、获取参数模板的详情、修改参数模板、应用参数模板、获取指定实例的参数信息、修改指定实例的参数接口。 获取日志信息 包括查询数据库慢日志、获取慢日志下载链接、查询数据库错误日志、获取错误日志下载链接、设置审计日志策略、查询审计日志策略、获取审计日志列表、获取审计日志下载链接接口。 标签管理 包括查询资源实例、批量添加或删除资源标签、查询资源标签、查询项目标签接口。 管理数据库和用户 包括创建数据库用户、创建数据库角色、查询数据库用户列表、查询数据库角色列表、修改数据库用户密码、检查数据库密码接口、查询集群均衡设置、设置集群均衡开关、设置集群均衡活动时间窗、删除数据库用户、删除数据库角色。 配额管理 查询单租户在DDS服务下的资源配额,包括集群实例配额、单节点实例配额和副本集实例配额。 任务管理 获取DDS任务中心指定ID的任务信息。
  • 具体步骤 Token认证,具体操作请参考认证鉴权。 发送“POST https://DDS的Endpoint/v3/{project_id}/instances”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下: 样例中参数“region”和“availability_zone”的值为示例值。 关于创建实例接口的详细说明,请参见创建实例。 { "name": "test-cluster", //实例名称 "datastore": { "type": "DDS-Community", //数据库版本类型 "version": "3.4", //数据库版本号 "storage_engine": "wiredTiger" //存储引擎 }, "region": "aaa", //区域名称 "availability_zone": "bbb", //可用区名称 "vpc_id": "674e9b42-cd8d-4d25-a2e6-5abcc565b961", //虚拟私有云ID "subnet_id": "f1df08c5-71d1-406a-aff0-de435a51007b", //子网ID "security_group_id": "7aa51dbf-5b63-40db-9724-dad3c4828b58", //安全组ID "password": "******", //管理员密码 "disk_encryption_id": "d4825f1b-5e47-4ff7-8ca9-0960da1770b1", //磁盘加密时的密钥ID "mode": "Sharding", //分片集群实例类型 "flavor": [ { "type": "mongos", //mongos节点类型 "num": 2, //节点数量 "spec_code": "dds.mongodb.c6.medium.4.mongos" //节点资源编码 }, { "type": "shard", //shard节点类型 "num": 2, //节点数量 "storage": "ULTRAHIGH", //磁盘类型 "size": 20, //磁盘大小 "spec_code": "dds.mongodb.c6.medium.4.shard" //节点资源编码 }, { "type": "config", //config节点类型 "num": 1, //节点数量 "storage": "ULTRAHIGH", //磁盘类型 "size": 20, //磁盘大小 "spec_code": "dds.mongodb.c6.large.2.config" //节点资源编码 } ], "backup_strategy": { "start_time": "23:00-00:00", //备份时间段 "keep_days": "8" //备份文件的保留天数 }, "ssl_option":"1"} 请求成功后,返回如下信息: { "id": "46125c43ca4d424a9f5c97354223c4e0in02", "name": "test-cluster", "datastore": { "type": "DDS-Community", "version": "3.4", "storage_engine": "wiredTiger" }, "created": "2019-01-14 08:50:27", "status": "creating", "region": "aaa", "availability_zone": "bbb", "vpc_id": "674e9b42-cd8d-4d25-a2e6-5abcc565b961", "subnet_id": "f1df08c5-71d1-406a-aff0-de435a51007b", "security_group_id": "7aa51dbf-5b63-40db-9724-dad3c4828b58", "disk_encryption_id": "d4825f1b-5e47-4ff7-8ca9-0960da1770b1", "mode": "Sharding", "flavor": [ { "type": "mongos", "num": 2, "spec_code": "dds.mongodb.c6.medium.4.mongos" }, { "type": "shard", "num": 2, "size": 20, "spec_code": "dds.mongodb.c6.medium.4.shard" }, { "type": "config", "num": 1, "size": 20, "spec_code": "dds.mongodb.c6.large.2.config" } ], "backup_strategy": { "start_time": "23:00-00:00", "keep_days": "8" }, "enterprise_project_id": "", "ssl_option":"1", "job_id": "c0c606b6-470a-48c7-97a2-6c7f146014d4"} 若请求失败,会返回错误码及对应的错误信息说明,详细错误码信息请参见错误码。
  • 响应消息 参数说明 表1 参数说明 名称 参数类型 是否必选 描述 versions Array of objects 否 API版本详细信息列表。详情请参见表2。 表2 versions字段数据结构说明 名称 参数类型 是否必选 描述 id String 是 API版本号。 links Array of objects 是 对应该API的链接信息。详情请参见表3。 说明: v3版本该字段为[]。 status String 是 版本状态。 取值为“CURRENT”,表示该版本目前已对外公布。 version String 是 API版本的子版本信息。 min_version String 是 API版本的最小版本号。 updated String 是 版本更新时间。 格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始,Z指UTC时间。 表3 links字段数据结构说明 名称 参数类型 是否必选 描述 href String 否 对应该API的URL,该字段为""。 rel String 否 取值为“self”,表示URL为本地链接。 响应示例 { "version": { "id": "v3", "links": [], "status": "CURRENT", "version": "", "min_version": "", "updated": "2017-02-07T17:34:02Z" }}
  • 响应消息 参数说明 表1 参数说明 名称 参数类型 是否必选 描述 versions Array of objects 否 API版本详细信息列表。详情请参见表2。 表2 versions字段数据结构说明 名称 参数类型 是否必选 描述 id String 是 API版本号。 links Array of objects 是 对应该API的链接信息。详情请参见表3。 说明: v3版本该字段为[]。 status String 是 版本状态。 取值为“CURRENT”,表示该版本目前已对外公布。 version String 是 API版本的子版本信息。 min_version String 是 API版本的最小版本号。 updated String 是 版本更新时间。 格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始,Z指UTC时间。 表3 links字段数据结构说明 名称 参数类型 是否必选 描述 href String 否 对应该API的URL,该字段为""。 rel String 否 取值为“self”,表示URL为本地链接。 响应示例 { "versions": [ { "id": "v3", "links": [], "status": "CURRENT", "version": "", "min_version": "", "updated": "2017-02-07T17:34:02Z" } ]}
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domianname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,上面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domianname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } }} 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。 resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 是 application/json Content-Length 请求body长度,单位为Byte。 POST请求为可选,GET请求该字段值留空。 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK 认证方式的接口请求或者多project场景采用AK/SK认证的接口请求则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json
  • 请求示例 创建一个数据库实例的手动备份,名称为mybackup1,描述为The first Manual backup { "backup":{ "instance_id": "a89dab5e39394eccbdb77b19d57b0180in02", "name": "mybackup1", "description": "The first Manual backup" }}
  • 响应消息 参数说明 表3 参数说明 名称 参数类型 是否必选 描述 job_id String 是 手动备份的异步任务ID。 backup_id String 是 手动备份ID。 响应示例 { "job_id": "a03b1b8a-b756-467c-8a49-38720c3d23ec", "backup_id": "bf9ee62a7f7044c583c6765c916c36edbr02"}
  • 举例 商家收到的调用请求数据示例如下: http://www.isvwebsite.com/saasproduce?p1=1&p2=2&p3=3&authToken=xxxxxxxxxxxxxx&timeStamp=201706211855321 获取所有的http get请求参数:p1、p2、p3、timeStamp 进行字典排序:sort(p1, p2, p3,timeStamp),假设排序后的顺序是p1、p3、p2、timeStamp 生成authToken值:base64_encode(HMAC_SHA256(Key+timeStamp, p1=1&p3=3&p2=2&timeStamp=201706211855321)) 所有参数的值云商店都经过了URL编码,商家取到参数值应先进行URL解码。
  • 响应参数 表2 状态码 状态码 描述 200 请求成功。 401 认证失败。 表3 响应Body参数 参数 参数类型 描述 id String 用户ID userName String 用户名 name String 姓名 email String 邮箱地址 mobile String 手机号 error String 错误类型。 error_description String 错误描述。 role String 角色 organizationName String 组织名称 userId String 用户id organizationCode String 组织编码 projectName String 租户名称 tenant String 租户id
  • 请求参数 表1 请求Header 参数 是否必选 参数类型 描述 Accept 是 String 接收响应类型,值:application/json。 Authorization 是 String 认证凭据,值:Bearer {access_token}。 请求示例 GET {domain_name}/api/v1/oauth2/userinfoAuthorization: Bearer ******Accept: application/json
  • HTTP Body签名 Body签名,需要包含在每个接口的响应中,包含两部分: 参数 取值 描述 sign_type HMAC-SHA256 当前取值: HMAC-SHA256 signature base64_encode(HMAC_SHA256(key, httpBody)) base64_encode(HMAC_SHA256(key, httpBody)) httpBody:整个HTTP Body,包括开始和结束的空格、TAB符等。 key = Key值 HTTP响应头域示例: Body-Sign: sign_type="HMAC-SHA256", signature= "*****" 说明: 消息头的格式请严格按照示例添加,sign_type和signature的值必须要加双引号。 代码示例请参见ISV Server对响应消息体进行签名。 父主题: 接入准备工作
  • 登录须知 开天aPaaS 企业工作台登录访问提供三种类型: 浏览器(推荐chrome)、PC客户端和移动端。 SaaS应用可以是轻应用(H5)或基于WEB架构应用,这些SaaS应用都经过oAuth或者CAS协议改造。 以oAuth2.0协议应用为例,企业用户首先通过用户名及密码登录 企业工作台 ,成功登录后,用户在企业工作台中点击某个SAAS应用, 企业工作台获取认证中心地址,并查询应用的回调址,并发起认证授权申请,回调成功后,SAAS应用获取Code及租户的ID,通过API获取accessToken及用户信息。 父主题: 开天aPaaS企业工作台登录
  • 请求消息 请求参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 activity M String 32 接口请求标识,用于区分接口请求场景。 变更授权码状态场景取值:updateLicenseCodeStatus license M String 64 授权码 status M String 32 变更状态: FREEZE:冻结 UNFREEZE:解冻 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 请求消息示例: {"activity":"updateLicenseCodeStatus","license":"******","status":"FREEZE","testFlag":"1"}
  • 商家接入接口说明 商家发布License授权码商品时,需在生产接口服务器开发一个生产接口。 同一个商品发布时,针对不同的调用场景(续费、过期、释放),只需要配置一个“生产系统接口地址”。 客户续费下单付款成功后,云商店将调用该接口(续费场景)请求商家执行业务延期,商家接口需要更新到期日,并将执行结果返回给云商店。 客户购买的商品过期,云商店调用该接口(过期场景)时,商家接到通知应冻结指定的授权码,并将执行结果返回给云商店。 用户订单到期后,根据客户等级的不同,有最长15天的资源冻结期,冻结期内资源不可使用,但可以对此订单进行续费,以解冻后继续使用,故商家需对License商品设置15天的冻结期,并在冻结期内保留用户数据。 当客户已购买的商品到期不续订且超过冻结期或申请退订商品成功,云商店释放客户购买的商品并调用该接口(释放场景)时,商家接到通知应删除指定的授权码,并将执行结果返回给云商店。 父主题: 商家接入接口描述
  • 请求消息 请求参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 activity M String 32 接口请求标识,用于区分接口请求场景。 释放场景取值:releaseLicenseCode license M String 64 授权码 orderId O String 64 退订商品触发的释放授权码场景下会传递退订订单 orderLineId O String 64 云商店订单行ID。 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 请求消息示例: {"activity":"releaseLicenseCode","license":"*******","orderId":"******","orderLineId":"******","testFlag":"1"}
  • 请求消息 请求参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 续费场景取值:refreshLicenseCode scene M String 64 场景,触发授权码变更的场景: RENEWAL:续费 UNSUBSCRIBE_RENEWAL_PERIOD:退续费" orderId M String 64 云商店订单ID 说明: 续费或退续费操作会产生新的订单ID,与新购或续费时订单ID不一致。 orderLineId M String 64 云商店订单行ID。 license M String 64 授权码。 productId O String 64 产品标识,租户续费或转正产品授权码时,如果订购周期类型发生变化,会传入变化后的产品类型对应的productId。 expireTime M String 20 过期时间。 格式:yyyyMMddHHmmss testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试请求 默认取值为“0”。 请求消息示例: {"activity":"refreshLicenseCode","expireTime":"20230523201932","license":"******","orderId":"******","orderLineId":"******","productId":"******","scene":"RENEWAL","testFlag":"1"}
共100000条