• 沒有找到結果。

查询产品规格列表_分布式缓存服务 DCS_API参考_历史API(即将下线)_其他接口_华为云

N/A
N/A
Protected

Academic year: 2022

Share "查询产品规格列表_分布式缓存服务 DCS_API参考_历史API(即将下线)_其他接口_华为云"

Copied!
404
0
0

加載中.... (立即查看全文)

全文

(1)

API 参考

文档版本 18

发布日期 2022-02-25

(2)

版权所有 © 华为技术有限公司 2022。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址:

https://www.huawei.com

客户服务邮箱:

[email protected]

客户服务电话:4008302118

(3)

目 录

1 使用前必读... 1

1.1 概述... 1

1.2 调用说明...1

1.3 终端节点...2

1.4 约束与限制... 2

1.5 基本概念...2

2 API 概览... 4

3 如何调用 API...5

3.1 构造请求...5

3.2 认证鉴权...7

3.3 返回结果...9

4 应用示例...11

4.1 创建 DCS 高频场景示例...11

4.2 示例 1:创建 Redis 实例... 17

4.3 示例 2:创建数据迁移任务... 22

4.4 示例 3:批量删除 Redis 实例... 24

5 API V2...28

5.1 生命周期管理...28

5.1.1 创建缓存实例... 28

5.1.2 查询所有实例列表... 44

5.1.3 批量删除实例... 51

5.1.4 查询指定实例... 54

5.1.5 删除实例... 59

5.1.6 修改实例信息... 60

5.1.7 变更实例规格... 64

5.2 实例管理... 67

5.2.1 主备切换... 67

5.2.2 修改密码... 70

5.2.3 查询实例状态... 73

5.2.4 重启实例或清空数据... 77

5.2.5 查询运行中实例的统计信息... 80

5.3 分片与副本... 83

(4)

5.3.1 设置备节点优先级... 83

5.3.2 域名摘除 IP... 86

5.3.3 查询分片信息... 89

5.4 参数管理... 94

5.4.1 查询实例配置参数... 94

5.4.2 修改实例配置参数... 97

5.5 备份与恢复... 99

5.5.1 删除备份文件... 99

5.5.2 恢复指定实例...101

5.5.3 查询实例恢复记录... 103

5.5.4 获取备份文件下载链接... 106

5.5.5 备份指定实例...109

5.5.6 查询实例备份信息... 111

5.6 数据迁移... 115

5.6.1 创建数据迁移任务... 116

5.6.2 查询迁移任务列表... 121

5.6.3 删除数据迁移任务... 126

5.6.4 查询迁移任务详情... 129

5.6.5 停止数据迁移任务... 134

5.6.6 查询在线迁移进度明细... 139

5.6.7 创建在线数据迁移任务... 143

5.6.8 配置在线数据迁移任务... 147

5.6.9 批量停止数据迁移任务... 152

5.6.10 同步停止数据迁移任务... 156

5.7 标签管理... 159

5.7.1 查询租户所有标签... 159

5.7.2 批量添加或删除标签...161

5.7.3 查询单个实例标签... 163

5.8 缓存分析... 165

5.8.1 创建大 key 分析任务... 165

5.8.2 查询大 key 分析任务列表... 169

5.8.3 查询大 key 分析详情... 174

5.8.4 删除大 key 分析记录... 178

5.8.5 设置大 key 自动分析配置... 181

5.8.6 查询大 key 自动分析配置... 185

5.8.7 创建热 key 分析任务... 188

5.8.8 查询热 key 分析任务列表... 193

5.8.9 查询热 key 分析详情... 198

5.8.10 删除热 key 分析任务... 203

5.8.11 设置热 key 自动分析配置... 205

5.8.12 查询热 key 自动分析配置... 209

5.9 日志管理... 212

(5)

5.9.1 查询慢日志... 212

5.9.2 查询 Redis 运行日志列表... 217

5.9.3 采集 Redis 运行日志... 221

5.9.4 获取日志下载链接... 224

5.10 IP 白名单管理... 227

5.10.1 设置 IP 白名单分组... 227

5.10.2 查询指定实例的 IP 白名单... 230

5.11 后台任务管理...232

5.11.1 查询后台任务列表...232

5.11.2 删除后台任务... 237

5.12 实例诊断... 240

5.12.1 创建实例诊断任务...240

5.12.2 查询实例诊断任务列表... 242

5.12.3 查询指定诊断报告...245

5.13 其他接口... 252

5.13.1 查询产品规格... 252

5.13.2 查询维护时间窗时间段... 259

5.13.3 查询租户配额... 261

5.13.4 查询单个主维度下子维度监控对象列表... 264

5.13.5 查询主维度信息列表... 269

5.13.6 查询可用区信息... 272

6 权限策略和授权项...274

7 附录... 278

7.1 状态码... 278

7.2 错误码... 280

7.3 获取项目 ID... 306

7.4 获取帐户名和帐号 ID... 307

7.5 缓存实例状态说明... 308

7.6 实例诊断 ID 说明...308

8 历史 API(即将下线)...310

8.1 生命周期管理... 310

8.1.1 创建缓存实例...310

8.1.2 删除实例... 321

8.1.3 批量删除实例...322

8.1.4 查询指定实例...324

8.1.5 查询所有实例列表... 330

8.1.6 修改实例信息...334

8.1.7 扩容缓存实例...337

8.2 实例管理... 338

8.2.1 重启实例或清空数据...338

8.2.2 查询分片信息...340

(6)

8.2.3 添加副本... 343

8.2.4 查询运行中实例的统计信息...344

8.2.5 查询实例状态...346

8.2.6 修改密码... 348

8.3 分片与副本... 350

8.3.1 添加副本... 350

8.3.2 删除副本... 351

8.4 参数管理... 352

8.4.1 修改实例配置参数... 353

8.4.2 查询实例配置参数... 354

8.5 备份和恢复... 361

8.5.1 备份指定实例...361

8.5.2 恢复指定实例...363

8.5.3 查询实例备份信息... 364

8.5.4 查询实例恢复记录... 367

8.5.5 删除备份文件...370

8.5.6 获取备份文件下载链接... 371

8.6 标签管理... 373

8.6.1 查询租户所有标签... 373

8.6.2 批量添加或删除标签...374

8.6.3 查询单个实例标签... 376

8.7 其他接口... 377

8.7.1 查询产品规格列表... 377

8.7.2 查询主维度信息列表...382

8.7.3 查询单个主维度下子维度监控对象列表... 384

8.7.4 查询租户的试用权限...388

8.7.5 查询租户配额...390

8.7.6 查询维护时间窗时间段... 392

8.7.7 查询可用区信息... 394

A 文档修订记录... 397

(7)

1 使用前必读

1.1 概述

欢迎使用分布式缓存服务(Distributed Cache Service)。分布式缓存服务是一款内存 数据库服务,兼容了Redis和Memcached两种内存数据库引擎,为您提供即开即用、

安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,满足用户高并发及数据快速 访问的业务诉求。

您可以使用本文档提供API对分布式缓存服务进行相关操作,如创建、删除、扩容等。

支持的全部操作请参见API概览。

在调用分布式缓存服务API之前,请确保已经充分了解分布式缓存服务相关概念,详细 信息请参见产品介绍。

须知

● 部分接口仅在指定region支持,请以实际为准。

● DCS服务持续增加新的功能,将不可避免对现有接口有所调整,比如增加响应参 数。

● 为了减少接口变更带来的影响,除了DCS服务自身尽量做到接口向下兼容的同时,

用户在使用过程中,应当接受出现返回内容(JSON格式)含有未使用的参数和值的 现象,即能够正常忽略未使用的参数和值。

● 关于客户端连接缓存实例,请参考《分布式缓存服务用户指南》。在《分布式缓存 服务用户指南》中,有Redis、Memcached的多语言客户端连接示例说明。

1.2 调用说明

分布式缓存服务提供了REST(Representational State Transfer)风格API,支持您通 过HTTPS请求调用,调用方法请参见如何调用API。

(8)

1.3 终端节点

终端节点即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和

终端节点中查询服务的终端节点。

1.4 约束与限制

● 您能创建实例数和总内存大小,具体请参见服务配额。

● 更详细的限制请参见具体API的说明。

1.5 基本概念

● 帐号

用户注册帐号时,帐号对其所拥有的资源及云服务具有完全的访问权限,可以重 置用户密码、分配用户权限等。由于帐号是付费主体,为了确保帐号安全,建议 您不要直接使用帐号进行日常管理工作,而是创建用户并使用他们进行日常管理 工作。

● 用户

由帐号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问 密钥)。

在我的凭证下,您可以查看帐号ID和用户ID。通常在调用API的鉴权过程中,您需 要用到帐号、用户和密码等信息。

● 区域:指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内 网不互通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户 的要求,或满足不同地区的法律或其他要求。

● 可用区:一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ 内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ 间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。

● 项目

区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计 算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您 帐号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默 认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授 权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。

1-1 项目隔离模型

(9)

同样在我的凭证下,您可以查看项目ID。

● 企业项目

企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔 离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。

关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户

指南》。

(10)

2 API 概览

2-1 分布式缓存服务接口列表

类型 说明

生命周期管理

包括实例的创建、查询和删除,实例信息的修改以及

实例扩容。

实例管理

包括重启实例、查询实例状态、修改密码、查询实例

的统计信息等接口。

分片与副本

包括添加副本、设置备节点切换为主节点的优先级、

查询分片信息等接口。

参数管理

包括查询和修改实例配置参数接口。

备份与恢复

包括备份实例、恢复实例、查看备份信息和恢复记录

等接口

数据迁移

包括创建实例迁移任务接口。

标签管理

用户管理实例标签的接口,包括为实例添加标签、删

除标签、查询标签以及查询租户所有标签。

缓存分析

包括设置大Key和热Key分析任务、查询大Key和热Key 等接口。

日志管理

包括查询慢日志的接口。

IP白名单管理 包括为指定实例设置IP白名单分组、查询实例的IP白

名单的接口。

后台任务管理

包括查询后台任务列表、删除后台任务的接口。

实例诊断

包括查询可用区信息、产品规格列表以及维护时间窗

等接口。

(11)

3 如何调用 API

3.1 构造请求

本节如何构造REST API的请求,并以调用IAM服务的获取用户Token说明如何调用 API,该API获取用户的Token,Token可以用于调用其他API时鉴权。

您还可以通过这个视频教程了解如何构造请求调用API:https://

bbs.huaweicloud.com/videos/102987 。

请求 URI

请求URI由如下部分组成。

{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}

尽管请求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),拼接起来如下所示。

(12)

https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens

3-1 URI 示意图

说明

为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。

这是因为URI-scheme都是HTTPS,同一个服务的Endpoint在同一个区域也相同,所以简洁起见 将这两部分省略。

请求方法

HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。

GET:请求服务器返回指定资源。

PUT:请求服务器更新指定资源。

POST:请求服务器新增资源或执行特殊操作。

DELETE:请求服务器删除指定资源,如删除对象等。

HEAD:请求服务器资源头部。

PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会 去创建一个新的资源。

在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为:

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens

请求消息头

附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请 求头“Content-Type”,请求鉴权信息等。

如下公共消息头需要添加到请求中。

Content-Type:消息体的类型(格式),必选,默认取值为“application/

json”,有其他取值时会在具体接口中专门说明。

X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字 段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认 证的接口。

说明

DCS API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自 动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求 头。

AK/SK认证的详细说明请参见AK/SK认证。

对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添 加消息头后的请求如下所示。

(13)

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

请求消息体

请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求 消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。

每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。

对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说 明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中

username

为用户名,

domainname

为用户所属的帐号名称,

********

为用户登录密 码,

xxxxxxxxxxxxxxxxxx

为project的名称,如“cn-north-1”,您可以从地区和终端

节点获取,即对应地区和终端节点页面的“区域”字段的值。

说明

scope参数定义了Token的作用域,上面示例中获取的Token仅能访问project下的资源。您还可 以设置Token作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取 用户Token。

POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "********", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "xxxxxxxxxxxxxxxxxx"

} } } }

到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编 写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x- subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认 证调用其他API。

3.2 认证鉴权

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。

● Token认证:通过Token认证调用请求。

(14)

● AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。

推荐使用AK/SK认证,其安全性比Token认证要高。

Token 认证

说明

Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。

Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得 操作API的权限。

Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的 Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择 project,如下所示。

{ "auth": { "identity": { "methods": [ "password"

],

"password": { "user": {

"name": "username", "password": "********", "domain": {

"name": "domainname"

} } } }, "scope": { "project": {

"name": "xxxxxxxx"

} } } }

获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,

其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token:

ABCDEFJ....”加到请求消息头即可,如下所示。

GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json

X-Auth-Token: ABCDEFJ....

您还可以通过这个视频教程了解如何使用Token认证:https://

bbs.huaweicloud.com/videos/101333 。

AK/SK 认证

说明

AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。

AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而 通过身份认证。

● AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥 ID和私有访问密钥一起使用,对请求进行加密签名。

(15)

● SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,

可标识发送方,并防止请求被修改。

使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门 的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。

须知

签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。

3.3 返回结果

状态码

请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。

状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码 列表请参见状态码。

对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。

响应消息头

对应请求消息头,响应同样也有消息头,如“Content-type”。

对于获取用户Token接口,返回如图3-2所示的消息头,其中“x-subject-token”就是 需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。

3-2 获取用户 Token 响应消息头

(16)

响应消息体

响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应 消息头之外的内容。

对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。

{ "token": {

"expires_at": "2019-02-13T06:52:13.855000Z", "methods": [

"password"

],

"catalog": [ {

"endpoints": [ {

"region_id": "XXXXXX", ...

当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所 示。

{ "error": {

"code": "111400060",

"message": "instance name exists."

} }

其中,code表示错误码,message表示错误描述信息。

(17)

4 应用示例

4.1 创建 DCS 高频场景示例

本节介绍了使用API购买DCS实例过程中的一些常见问题及处理方法。

4-1 购买 DCS 实例常见问题及处理方法

常见问题 处理方法

购买包周期实例

为您介绍购买包周期实例时参数设置。

删除包周期实例

包周期资源需要通过退订的方式才可以被

删除。

使用API购买实例时设置副本数

使用API购买的实例,副本数的值取决于

在购买时输入的spec_code参数,为调用

查询产品规格响应示例中replica_count的

值。

获取子网ID

通过查询子网ID接口,获取正确的ID供购

买实例时配置。

购买实例时可用区资源不足

可用区资源不足会导致创建实例失败,可

通过调用查询产品规格响应示例中 flavors_available_zones.az_codes的值来 确保在购买实例时选择充足资源的可用 区。

查看资源的可用配额

通过调用查询租户配额接口,通过quota

值可确定可以创建的实例最大数和总内存 的配额限制。

购买包周期实例

您可使用创建缓存实例接口购买包周期实例,其与购买按需实例的区别在于,购买实 例的body体中,将bss_param.charging_mode字段配置为“prePaid”,

(18)

bss_param的详细介绍请参考表5-3。

如下请求体所示,在cn-north-4区域购买一个包周期DCS实例,时长为一个月,且下单 后不自动续订,不自动付费。

{ "name": "test", "engine": "Redis", "engine_version": "5.0", "capacity": 2,

"spec_code": "redis.ha.xu1.large.r2.2", "az_codes": [

"cn-north-4a"

], "vpc_id": "c29eade3-05d3-41a3-84e4-2cc1f3057502", "subnet_id": "b573d369-2b49-4595-8727-2408244a7675", "no_password_access": true,

"bss_param": {

"charging_mode": "prePaid", "is_auto_pay": "false", "period_type": "month", "period_num": 2

}, "instance_backup_policy": { "backup_type": "auto", "save_days": 2,

"periodical_backup_plan": { "backup_at": [

2 ],

"period_type": "weekly", "begin_at": "00:00-01:00"

} }, "tags": [ { "key": "test", "value": "123"

} ] }

购买任务提交成功后,会返回以下order_id,即订单ID。

{ "instance_id": "23be3a34-8cc1-4eab-9ad2-b085eadee9c4", "order_id": "CS2111091732PY0DE",

"instances": [

{ "instance_id": "23be3a34-8cc1-4eab-9ad2-b085eadee9c4", "instance_name": "test"

} ] }

上面请求体中bss_param.is_auto_pay取值为false或不填该字段则需要手动去支付,手 动支付可以填写优惠券和折扣券等信息。手动支付需要调用支付包年/包月产品订单支 付,示例如下。

POST https://bss.myhuaweicloud.com/v2/orders/customer-orders/pay { "order_id": "CS2111091732PY0DE"

}

删除包周期实例

包周期的DCS实例无法直接删除,需要调用退订包年/包月资源接口进行退订。

(19)

POST https://bss.myhuaweicloud.com/v2/orders/subscriptions/resources/unsubscribe { "resource_ids": [

"44b393c8-e4e4-4dcb-bad3-54858dcc72c7"

], "unsubscribe_type": 1 }

其中resource_ids表示资源ID,对退订DCS来说,就是购买包周期DCS时返回的 instance_id。

使用 API 购买实例时设置副本数

使用API购买实例后,副本数的值取决于在购买时输入的spec_code参数。副本数即为

查询产品规格接口响应示例的replica_count值。

请求示例:

GET https://{dcs_endpoint}/v2/flavors?

cache_mode={cache_mode}&engine={engine}&engine_version={engine_version}&cpu_type={cpu_type}&capa city={capacity}

响应示例:

{ "flavors": [ { "dec": false,

"spec_code": "redis.ha.xu1.large.r4.2",

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "cache_mode": "ha",

"engine": "redis",

"engine_version": "4.0;5.0", "product_type": "generic", "cpu_type": "x86_64", "storage_type": "DRAM", "capacity": [

"2"

],

"billing_mode": [ "Hourly", "Monthly", "Yearly"

],

"tenant_ip_count": 4, "pricing_type": "normal", "is_dec": false,

"attrs": [ {

"capacity": "2",

"name": "max_memory", "value": "2"

}, {

"capacity": "2",

"name": "max_connections", "value": "50000"

}, {

"capacity": "2",

"name": "sharding_num", "value": "1"

}, {

"capacity": "2", "name": "proxy_num", "value": "0"

(20)

}, {

"capacity": "2", "name": "db_number", "value": "256"

}, {

"capacity": "2", "name": "max_clients", "value": "10000"

}, {

"capacity": "2",

"name": "max_bandwidth", "value": "128"

} ],

"flavors_available_zones": [ {

"capacity": "2", "unit": "GB", "available_zones": [

"a0865121f83b41cbafce65930a22a6e8", "15dcd3f789cb4fc088dbdece9c5eb547", "2dcb154ac2724a6d92e9bcc859657c1e", "effdcbc7d4d64a02aa1fa26b42f56533"

],

"az_codes": [ "cn-north-4b", "cn-north-4g", "cn-north-4c", "cn-north-4a"

] } ],

"replica_count": 4, "inquery_spec_code": null } ]

}

说明

在购买实例时,输入的spec_code参数须与capacity参数一一对应。

获取子网 ID

在购买实例时配置正确的子网ID,才能够成功连接实例。可通过GET /v1/{project_id}/

subnets?{vpc_id}获取准确子网ID,其中vpc_id可通过GET /v1/{project_id}/vpcs接口 获取。

获取vpc_id的请求示例:

GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/vpcs

{vpc_endpoint}信息,请从地区和终端节点获取。

获取vpc_id的响应示例:

{ "vpcs": [{

"id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "name": "vpc-d2d4",

"description": "", "cidr": "192.168.0.0/16", "status": "OK", "routes": [],

"enterprise_project_id": "0"

(21)

}]

}

获取子网ID的请求示例:

GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/subnets?vpc_id=743bf021-2c2d-4511- aeac-85bd48c06af7

获取子网ID的响应示例:

{ "subnets": [{

"id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "name": "subnet-d2e4",

"description": "", "cidr": "192.168.0.0/24", "dnsList": ["100.125.1.250", "100.125.129.250"], "status": "ACTIVE",

"vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "ipv6_enable": false,

"gateway_ip": "192.168.0.1", "dhcp_enable": true,

"primary_dns": "100.125.1.250", "secondary_dns": "100.125.129.250", "availability_zone": "cn-southwest-2a",

"neutron_network_id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "neutron_subnet_id": "3d4ccce0-cadc-4af4-8c21-14d2857ffe5e", "extra_dhcp_opts": []

}]

}

购买实例时可用区资源不足

在购买实例时,如需要查询某一规格在某可用区是否资源充足,可通过调用查询产品

规格查看规格所在可用区的详细信息,通过flavors_available_zones的值判断该规格可

选的可用区。

如在北京四、规格为redis.ha.xu1.large.r2.2的资源充足可用区的信息,请求示例:

https://dcs.cn-north-4.myhuaweicloud.com/v2/05041fffa40025702f6dc009cc6f8f33/flavors?

spec_code=redis.ha.xu1.large.r2.2

响应示例:

{ "flavors": [ { "dec": false,

"spec_code": "redis.ha.xu1.large.r2.2",

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "cache_mode": "ha",

"engine": "redis",

"engine_version": "4.0;5.0", "product_type": "generic", "cpu_type": "x86_64", "storage_type": "DRAM", "capacity": [

"2"

],

"billing_mode": [ "Hourly", "Monthly", "Yearly"

],

"tenant_ip_count": 2, "pricing_type": "normal",

(22)

"is_dec": false, "attrs": [ {

"capacity": "2",

"name": "max_memory", "value": "2"

}, {

"capacity": "2",

"name": "max_connections", "value": "50000"

}, {

"capacity": "2",

"name": "sharding_num", "value": "1"

}, {

"capacity": "2", "name": "proxy_num", "value": "0"

}, {

"capacity": "2", "name": "db_number", "value": "256"

}, {

"capacity": "2", "name": "max_clients", "value": "10000"

}, {

"capacity": "2",

"name": "max_bandwidth", "value": "128"

} ],

"flavors_available_zones": [ {

"capacity": "2", "unit": "GB", "available_zones": [

"a0865121f83b41cbafce65930a22a6e8", "15dcd3f789cb4fc088dbdece9c5eb547", "2dcb154ac2724a6d92e9bcc859657c1e", "effdcbc7d4d64a02aa1fa26b42f56533"

],

"az_codes": [ "cn-north-4b", "cn-north-4g", "cn-north-4c", "cn-north-4a"

] } ],

"replica_count": 2, "inquery_spec_code": null } ]

}

其中flavors_available_zones罗列出了该规格资源充足的可用区。

查看资源的可用配额

如需查询当前帐号号的资源配额信息,包括已使用的配额,可以通过调用查询租户配

额接口。

(23)

请求示例:

GET https://dcs.cn-north-4.myhuaweicloud.com/v2/05041fffa40025702f6dc009cc6f8f33/quota

响应示例:

{ "quotas": { "resources": [ { "quota": 160, "used": 1, "type": "instance", "min": 0,

"max": 2147483647, "unit": null

},

{ "quota": 64000, "used": 0, "type": "ram", "min": 0, "max": 1048576, "unit": "GB"

} ] }}

● 当type为instance时,max表示可申请实例配额的最大值,min表示可申请实例配 额的最小值。

● 当type为ram时,max表示可申请内存配额的最大值,min表示可申请内存配额的 最小值。

● quota为可以创建的实例最大数和总内存的配额限制。

● used为已创建的实例个数和已使用的内存配额。

4.2 示例 1:创建 Redis 实例

场景描述

本章节指导用户通过API创建Redis实例。API的调用方法请参见如何调用API。

本文以创建一个实例规格为2G、缓存版本为Redis5.0、实例类型为单机、CPU架构为 ARM、免密访问方式的缓存实例。

涉及接口

创建Redis实例时,需要进行查询产品规格、查询VPC、子网等操作,涉及的API如下:

查询VPC ID:确定待创建DCS实例的VPC ID。

查询子网ID:确定待创建DCS实例的子网ID。

查询产品规格:确定待创建DCS实例的产品规格。

创建实例:创建指定规格的DCS实例。

查询创建结果:确认创建DCS实例是否成功。

(24)

步骤 1:确定待创建实例的 VPC

步骤1 查询VPC列表。

● 接口相关信息

URI格式:GET /v1/{project_id}/vpcs

● 请求示例

GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/vpcs {vpc_endpoint}信息,请从地区和终端节点获取。

● 响应示例

{ "vpcs": [{

"id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "name": "vpc-d2d4",

"description": "", "cidr": "192.168.0.0/16", "status": "OK", "routes": [],

"enterprise_project_id": "0"

}]

}

步骤2 根据需要,记录VPC ID。

----结束

步骤 2:确定待创建实例的子网

步骤1 查询子网列表。

● 接口相关信息

URI格式:GET /v1/{project_id}/subnets?{vpc_id}

● 请求示例

GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/subnets?

vpc_id=743bf021-2c2d-4511-aeac-85bd48c06af7 {vpc_endpoint}信息,请从地区和终端节点获取。

● 响应示例

{ "subnets": [{

"id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "name": "subnet-d2e4",

"description": "", "cidr": "192.168.0.0/24", "dnsList": ["100.125.1.250", "100.125.129.250"], "status": "ACTIVE",

"vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "ipv6_enable": false,

"gateway_ip": "192.168.0.1", "dhcp_enable": true,

"primary_dns": "100.125.1.250", "secondary_dns": "100.125.129.250", "availability_zone": "cn-southwest-2a",

"neutron_network_id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "neutron_subnet_id": "3d4ccce0-cadc-4af4-8c21-14d2857ffe5e", "extra_dhcp_opts": []

}]

}

(25)

步骤2 根据需要,记录子网ID。

----结束

步骤 3:确定待创建实例的产品规格

步骤1 查询产品规格。

● 接口相关信息

URI格式:GET /v2/{project_id}/flavors?

spec_code={spec_code}&cache_mode={cache_mode}&engine={engine}&engin e_version={engine_version}&cpu_type={cpu_type}&capacity={capacity}

● 请求示例

GET https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/flavors?

cache_mode=single&engine=Redis&engine_version=5.0&cpu_type=aarch64&ca pacity=2

{dcs_endpoint}信息请从地区和终端节点获取。

● 响应示例

[{ "dec": false,

"spec_code": "redis.single.au1.large.2",

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "cache_mode": "single",

"engine": "redis",

"engine_version": "4.0;5.0", "product_type": "generic", "cpu_type": "aarch64", "storage_type": "DRAM", "capacity": ["2"], "billing_mode": ["Hourly", "RI",

"Monthly", "Yearly"],

"tenant_ip_count": 1, "pricing_type": "normal", "is_dec": false,

"attrs": [{

"capacity": "2",

"name": "max_memory", "value": "2"

}, {

"capacity": "2",

"name": "max_connections", "value": "10000"

}, {

"capacity": "2",

"name": "sharding_num", "value": "1"

}, {

"capacity": "2", "name": "proxy_num", "value": "0"

}, {

"capacity": "2", "name": "db_number", "value": "256"

}, {

(26)

"capacity": "2", "name": "max_clients", "value": "10000"

}, {

"capacity": "2",

"name": "max_bandwidth", "value": "128"

}],

"flavors_available_zones": [{

"capacity": "2", "unit": "GB",

"available_zones": ["a0865121f83b41cbafce65930a22a6e8", "effdcbc7d4d64a02aa1fa26b42f56533"],

"az_codes": ["cn-north-4b", "cn-north-4a"]

}]

}]

步骤2 根据需要选择产品类型,并记录产品规格编码和有资源的可用区编码。

----结束

步骤 4:创建实例

● 接口相关信息

URI格式:POST /v2/{project_id}/instances

● 请求示例

POST https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/

instances

{dcs_endpoint}信息请从地区和终端节点获取。

Body:

{ "az_codes": ["cn-north-4a"], "capacity": 2,

"engine": "Redis", "engine_version": "5.0", "name": "dcs-api-test", "no_password_access": true,

"security_group_id": "1982d3a8-67a0-4fc9-a850-bc42a26ba2c0", "spec_code": "redis.single.au1.large.2",

"subnet_id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7"

}

● 响应示例

{ "instances": [{

"instance_id": "21bc7b53-2494-4f10-bb0b-c0b913d9e329", "instance_name": "dcs-api-test"

}]

}

步骤 5:查询创建结果

● 接口相关信息

URI格式:GET /v2/{project_id}/instances/{instance_id}

● 请求示例

GEThttps://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/

instances/21bc7b53-2494-4f10-bb0b-c0b913d9e329

(27)

{dcs_endpoint}信息请从地区和终端节点获取。

● 响应示例

{ "free": null,

"max_memory": 2048, "used_memory": 1,

"instance_id": "21bc7b53-2494-4f10-bb0b-c0b913d9e329", "name": "dcs-api-test",

"resource_spec_code": "redis.single.au1.large.2", "engine": "Redis",

"engine_version": "5.0", "internal_version": null, "charging_mode": 0, "capacity": 2,

"capacity_minor": null,

"vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "vpc_name": "vpc-d2d4",

"ip": "192.168.0.100",

"domain_name": "redis-88a7bbb-dcs-api-test.dcs.huaweicloud.com", "readonly_domain_name": null,

"port": 6379, "status": "RUNNING", "freeze_scene": null,

"created_at": "2020-06-05T03:30:36.273Z", "update_at": "2020-06-05T03:30:47.231Z", "error_code": null,

"user_id": "d53977d1adfb49c5b025ba7d33a13fd7", "user_name": "paas_dcs_a00421997_02",

"maintain_begin": "02:00:00", "maintain_end": "06:00:00", "no_password_access": "true", "access_user": null,

"enable_publicip": false, "publicip_id": null, "publicip_address": null, "enable_ssl": false, "service_upgrade": false, "service_task_id": "", "enterprise_project_id": "0", "security_group_id": null, "tags": [],

"product_type": "generic", "cpu_type": "aarch64", "storage_type": "DRAM",

"launched_at": "2020-06-05T03:30:47.238Z", "is_free": null,

"libos": false,

"cache_mode": "single",

"available_zones": ["d539378ec1314c85b76fefa3f7071458"], "subnet_id": "a4112635-3ec0-471c-95c3-5cf49b9533af", "backend_addrs": null,

"crr_role": null,

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "support_slow_log_flag": null,

"ipv6": null, "enable_ipv6": false, "description": "",

"product_id": "redis.single.au1.large.2-h", "security_group_name": null,

"subnet_name": "dcs-beta", "order_id": null,

"subnet_cidr": "192.168.0.0/24", "task": null,

"instance_backup_policy": null, "enterprise_project_name": null }

实例状态为RUNNING时,即创建成功。

(28)

4.3 示例 2:创建数据迁移任务

场景描述

本章节指导用户通过API创建数据迁移任务。API的调用方法请参见如何调用API。

本文使用在线迁移、全量迁移的方式为例创建数据迁移任务,源实例与目标实例是华 为云上处于相同VPC的Redis。

涉及接口

创建数据迁移任务,涉及的API如下:

查询源实例的IP和端口:确定迁移的源Redis实例的IP和端口。

创建数据迁移任务:创建数据迁移任务。

查询迁移结果:确认迁移是否成功。

步骤 1:确定源实例的 IP 和端口

步骤1 查询指定实例的IP和端口。

● 接口相关信息

URI格式:GET /v2/{project_id}/instances/{instance_id}

● 请求示例

GET https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/

instances/21bc7b53-2494-4f10-bb0b-c0b913d9e329 {dcs_endpoint}信息请从地区和终端节点获取。

● 响应示例

{ "free": null,

"max_memory": 2048, "used_memory": 1,

"instance_id": "21bc7b53-2494-4f10-bb0b-c0b913d9e329", "name": "dcs-api-test",

"resource_spec_code": "redis.single.au1.large.2", "engine": "Redis",

"engine_version": "5.0", "internal_version": null, "charging_mode": 0, "capacity": 2,

"capacity_minor": null,

"vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "vpc_name": "vpc-d2d4",

"ip": "192.168.0.100",

"domain_name": "redis-88a7bbb-dcs-api-test.dcs.huaweicloud.com", "readonly_domain_name": null,

"port": 6379, "status": "RUNNING", "freeze_scene": null,

"created_at": "2020-06-05T03:30:36.273Z", "update_at": "2020-06-05T03:30:47.231Z", "error_code": null,

"user_id": "d53977d1adfb49c5b025ba7d33a13fd7", "user_name": "paas_dcs_a00421997_02",

"maintain_begin": "02:00:00", "maintain_end": "06:00:00",

(29)

"no_password_access": "true", "access_user": null,

"enable_publicip": false, "publicip_id": null, "publicip_address": null, "enable_ssl": false, "service_upgrade": false, "service_task_id": "", "enterprise_project_id": "0", "security_group_id": null, "tags": [],

"product_type": "generic", "cpu_type": "aarch64", "storage_type": "DRAM",

"launched_at": "2020-06-05T03:30:47.238Z", "is_free": null,

"libos": false,

"cache_mode": "single",

"available_zones": ["d539378ec1314c85b76fefa3f7071458"], "subnet_id": "a4112635-3ec0-471c-95c3-5cf49b9533af", "backend_addrs": null,

"crr_role": null,

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "support_slow_log_flag": null,

"ipv6": null, "enable_ipv6": false, "description": "",

"product_id": "redis.single.au1.large.2-h", "security_group_name": null,

"subnet_name": "dcs-beta", "order_id": null,

"subnet_cidr": "192.168.0.0/24", "task": null,

"instance_backup_policy": null, "enterprise_project_name": null }

步骤2 根据需要,记录实例的IP和端口。

----结束

步骤 2:创建数据迁移任务

● 接口相关信息

URI格式:POST /v2/{project_id}/migration-task

● 请求示例

POST https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/

migration-task

{dcs_endpoint}信息请从地区和终端节点获取。

Body:

{ "migration_method": "full_amount_migration", "migration_type": "online_migration",

"network_type": "vpc", "source_instance": {

"addrs": "192.168.0.79:6379"

},

"target_instance": {

"id": "92b2b922-0f96-4664-acc5-04d922867c4d"

},

"task_name": "dcs-test-migration"

}

(30)

● 响应示例

{ "id": "8aa6999f727f0a40017283479d730d7c", "name": "dcs-test-migration",

"status": "MIGRATING", "error": ""

}

步骤 3:查询迁移结果

● 接口相关信息

URI格式:GET /v2/{project_id}/migration-task/{task_id}

● 请求示例

GET https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/

migration-task/8aa6999f727f0a40017283479d730d7c {dcs_endpoint}信息请从地区和终端节点获取。

● 响应示例

{ "task_name": "dcs-test-migration",

"task_id": "8aa6999f727f0a40017283479d730d7c", "description": null,

"status": "SUCCESS",

"migration_type": "online_migration",

"migration_method": "full_amount_migration", "backup_files": null,

"network_type": "vpc", "bandwidth_limit_mb": null, "source_instance": { "id": null,

"ip": "192.168.0.79:6379", "port": null,

"name": null, "password": null, "addrs": null },

"target_instance": {

"id": "92b2b922-0f96-4664-acc5-04d922867c4d", "ip": null,

"port": null, "name": "dcs-xwvq", "password": null, "addrs": null },

"created_at": "2020-06-05T07:00:08.204Z", "updated_at": "2020-06-05T07:03:25.075Z"

}

任务状态为SUCCESS时,即迁移成功。

4.4 示例 3:批量删除 Redis 实例

场景描述

本章节指导用户通过API批量删除Redis实例。API的调用方法请参见如何调用API。

涉及接口

批量删除Redis实例时,需要进行查询待删除实例的ID,涉及的API如下:

(31)

查询实例ID:查询待删除Redis实例的ID。

批量删除实例:批量删除Redis实例。

步骤 1:查询待删除实例的 ID

步骤1 查询实例ID。

● 接口相关信息

URI格式:GET /v2/{project_id}/instances

● 请求示例

GET https://{dcs_endpoint}/v2/7d80ae32f57b499eb8781f9a9f57c538/instances {dcs_endpoint}信息,请从地区和终端节点获取。

● 响应示例

{ "instances": [{

"free": null,

"max_memory": 1024, "used_memory": 2,

"instance_id": "aabe73af-1db8-4401-b39c-c56996023989", "name": "dcs-8b1c-000",

"resource_spec_code": "redis.ha.xu1.large.r2.1", "engine": "Redis",

"engine_version": "5.0", "internal_version": null, "charging_mode": 0, "capacity": 1,

"capacity_minor": null,

"vpc_id": "cec3dca1-3700-4305-8eb0-5669c01f05b6", "vpc_name": null,

"ip": "192.168.0.12",

"domainName": "redis-aabe73a-dcs-8b1c-000.dcs.huaweicloud.com", "domain_name": "redis-aabe73a-dcs-8b1c-000.dcs.huaweicloud.com", "readonlyDomainName": null,

"readonly_domain_name": null, "port": 6379,

"status": "RUNNING", "freeze_scene": null,

"created_at": "2020-06-18T03:11:30.615Z", "update_at": "2020-06-18T03:11:58.936Z", "error_code": null,

"user_id": "05040c67cc00256f1f28c009a1c2a0f7", "user_name": "dcstest",

"maintain_begin": "02:00:00", "maintain_end": "06:00:00", "no_password_access": "true", "access_user": null,

"enable_publicip": false, "publicip_id": null, "publicip_address": null, "enable_ssl": false, "service_upgrade": false, "service_task_id": "", "enterprise_project_id": "0", "security_group_id": null, "tags": null,

"product_type": "generic", "cpu_type": "x86_64", "storage_type": "DRAM", "task_status": null,

"launched_at": "2020-06-18T03:11:58.945Z", "is_free": null,

"libos": false, "cache_mode": "ha",

"available_zones": ["dfeb4826256b47aa828e72d7522e108c",

(32)

"043c7e39ecb347a08dc8fcb6c35a274e"],

"subnet_id": "e6eb5ff4-da2a-4323-bddc-c7b179f9aa1e", "backend_addrs": null,

"crr_role": null,

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "support_slow_log_flag": null,

"ipv6": null, "enable_ipv6": false, "description": ""

}, {

"free": null,

"max_memory": 1024, "used_memory": 2,

"instance_id": "9d78d0f4-a110-4bcd-8ca3-5aec414163c1", "name": "dcs-8b1c-001",

"resource_spec_code": "redis.ha.xu1.large.r2.1", "engine": "Redis",

"engine_version": "5.0", "internal_version": null, "charging_mode": 0, "capacity": 1,

"capacity_minor": null,

"vpc_id": "cec3dca1-3700-4305-8eb0-5669c01f05b6", "vpc_name": null,

"ip": "192.168.0.33",

"domainName": "redis-9d78d0f-dcs-8b1c-001.dcs.huaweicloud.com", "domain_name": "redis-9d78d0f-dcs-8b1c-001.dcs.huaweicloud.com", "readonlyDomainName": null,

"readonly_domain_name": null, "port": 6379,

"status": "RUNNING", "freeze_scene": null,

"created_at": "2020-06-18T03:11:30.618Z", "update_at": "2020-06-18T03:11:58.937Z", "error_code": null,

"user_id": "05040c67cc00256f1f28c009a1c2a0f7", "user_name": "dcstest",

"maintain_begin": "02:00:00", "maintain_end": "06:00:00", "no_password_access": "true", "access_user": null,

"enable_publicip": false, "publicip_id": null, "publicip_address": null, "enable_ssl": false, "service_upgrade": false, "service_task_id": "", "enterprise_project_id": "0", "security_group_id": null, "tags": null,

"product_type": "generic", "cpu_type": "x86_64", "storage_type": "DRAM", "task_status": null,

"launched_at": "2020-06-18T03:11:58.943Z", "is_free": null,

"libos": false, "cache_mode": "ha",

"available_zones": ["dfeb4826256b47aa828e72d7522e108c", "043c7e39ecb347a08dc8fcb6c35a274e"],

"subnet_id": "e6eb5ff4-da2a-4323-bddc-c7b179f9aa1e", "backend_addrs": null,

"crr_role": null,

"cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "support_slow_log_flag": null,

"ipv6": null,

(33)

"enable_ipv6": false, "description": ""

}],

"instance_num": 2 }

步骤2 根据需要,记录要删除实例的instance_id。

----结束

步骤 2:批量删除实例

● 接口相关信息

URI格式:DELETE /v2/{project_id}/instances

● 请求示例

DELETE https://{dcs_endpoint}/v2/{project_id}/instances {dcs_endpoint}信息,请从地区和终端节点获取。

Body:

{ "instances": [

"aabe73af-1db8-4401-b39c-c56996023989", "9d78d0f4-a110-4bcd-8ca3-5aec414163c1"

]}

● 响应示例

{ "results": [

{ "result": "success",

"instance": "aabe73af-1db8-4401-b39c-c56996023989"

}, {

"result": "success",

"instance": "9d78d0f4-a110-4bcd-8ca3-5aec414163c1"

} ] }

(34)

5 API V2

5.1 生命周期管理

5.1.1 创建缓存实例

功能介绍

创建缓存实例,该接口创建的缓存实例支持按需和包周期两种计费方式。

调试

您可以在API Explorer中调试该接口,并获取该接口关联的CLI示例: hcloud DCS CreateInstance。

URI

POST /v2/{project_id}/instances 表5-1 路径参数

参数 是否必选 参数类型 描述

project_id 是 String 项目ID

(35)

请求参数

5-2 请求 Body 参数

参数 是否必选 参数类型 描述

name 是 String 实例名称。

由英文字符开头,只能由英文字 母、数字、中划线和下划线组 成。

创建单个实例时,名称长度为4 到64位的字符串。批量创建实 例时,名称长度为4到56位的字 符串,且实例名称格式为“自定 义名称-n”,其中n从000开 始,依次递增。例如,批量创建 两个实例,自定义名称为 dcs_demo,则两个实例的名称 为dcs_demo-000和

dcs_demo-001。

engine 是 String 缓存引擎:Redis和

Memcached。

engine_versio

n 否 String 缓存版本。

当缓存引擎为Redis时,取值为 3.0、4.0或5.0。

当缓存引擎为Memcached时,

该字段为可选,取值为空。

capacity 是 Float 缓存容量(G Byte)

● Redis3.0:单机和主备类型实 例取值:2、4、8、16、

32、64。Proxy集群实例规格 支持64、128、256、512和 1024。

● Redis4.0和Redis5.0:单机和 主备类型实例取值:0.125、

0.25、0.5、1、2、4、8、

16、32、64。Cluster集群实 例规格支持24、32、48、

64、96、128、192、256、

384、512、768、1024。 - Memcached:单机和主备类 型实例取值:2、4、8、

16、32、64。

(36)

参数 是否必选 参数类型 描述

spec_code 是 String 产品规格编码。具体查询方法如 下:

● 方法一:查询产品介绍中的

实例规格

● 方法二:登录分布式缓存的 控制台界面,点击购买缓存 实例,查找对应的实例规格 名称

● 方法三:调用查询产品规格 接口查询。

az_codes 是 Array of

strings 创建缓存节点到指定且有资源的 可用区Code。创建缓存节点到 指定且有资源的可用区Code。

具体查询方法,请参考查询可用

区信息,在查询时,请注意查看

该可用区是否有资源。

如果是创建主备、Proxy集群、

Cluster集群实例,支持跨可用 区部署,可以为备节点指定备可 用区。在为节点指定可用区时,

用逗号分隔开,具体请查看示 例。

vpc_id 是 String 虚拟私有云ID。

获取方法如下:

● 方法1:登录虚拟私有云服务 的控制台界面,在虚拟私有 云的详情页面查找VPC ID。

● 方法2:通过虚拟私有云服务 的API接口查询,具体操作可 参考查询VPC列表。

subnet_id 是 String 子网的网络ID。

获取方法如下:

● 方法1:登录虚拟私有云服务 的控制台界面,单击VPC下 的子网,进入子网详情页 面,查找网络ID。

● 方法2:通过虚拟私有云服务 的API接口查询[,具体操作 可参考查询子网列表。

(37)

参数 是否必选 参数类型 描述 security_grou

p_id 否 String 指定实例所属的安全组。

当engine为Redis且

engine_version为3.0时,或 engine为Memcached时,该参 数为必选。Redis3.0和

Memcached实例支持安全组访 问控制。

当engine为Redis且

engine_version为4.0和5.0时,

该参数为可选。Redis4.0和 Redis5.0版本实例不支持安全组 控制访问,只支持白名单控制。

获取方法如下:

● 方法1:登录虚拟私有云服务 的控制台界面,在安全组的 详情页面查找安全组ID。

● 方法2:通过虚拟私有云服务 的API接口查询,具体操作可 参考查询安全组列表。

publicip_id 否 String Redis缓存实例绑定的弹性IP地 址的id。

如果开启了公网访问功能(即 enable_publicip为true),该字 段为必选。

缺省值:false enterprise_pro

ject_id 否 String 企业项目ID。

enterprise_pro

ject_name 否 String 企业项目名称。

description 否 String 实例的描述信息。

长度不超过1024的字符串。

说明\与"在json报文中属于特殊字符,

如果参数值中需要显示\或者"字 符,请在字符前增加转义字符\,比 如\或者"。

enable_ssl 否 Boolean Redis缓存实例开启公网访问功 能时,是否选择支持ssl。

● true:开启

● false:不开启

private_ip 否 String 创建缓存实例手动指定的IP地址, 支持Redis和Memcached。

(38)

参数 是否必选 参数类型 描述

instance_num 否 Integer 表示批量创建缓存实例时,购买 的实例个数。仅Redis和

Memcached实例支持批量创 建。

默认值:1 取值范围:1-100 缺省值:1 maintain_begi

n 否 String 维护时间窗开始时间,为UTC时

间,格式为HH:mm:ss

● 维护时间窗开始和结束时间 必须为指定的时间段[,可参 考查询维护时间窗时间段获 取。

● 开始时间必须为22:00:00、

02:00:00、06:00:00、

10:00:00、14:00:00和 18:00:00。

● 该参数不能单独为空,若该 值为空,则结束时间也为 空。系统分配一个默认开始 时间02:00:00。

maintain_end 否 String 维护时间窗结束时间,为UTC时 间,格式为HH:mm:ss。

● 维护时间窗开始和结束时间 必须为指定的时间段[,可参 考查询维护时间窗时间段获 取。

● 结束时间在开始时间基础上 加四个小时,即当开始时间 为22:00:00时,结束时间为 02:00:00。

● 该参数不能单独为空,若该 值为空,则开始时间也为 空,系统分配一个默认结束 时间06:00:00。

(39)

参数 是否必选 参数类型 描述

password 否 String 缓存实例的认证信息

说明当“no_password_access”配置为

“false”或未配置时,请求消息中 须包含password参数。 Redis类型 的缓存实例密码复杂度要求:

● 输入长度为8到32位的字符 串。

● 新密码不能与旧密码相同。

● 必须包含如下四种字符中的 三种组合:

– 小写字母 – 大写字母 – 数字

– 特殊字符包括(`~!@#$

%^&*()-_=+|

[{}]:'",<.>/?)

no_password_

access 否 Boolean 是否允许免密码访问缓存实例。

● true:该实例无需密码即可 访问。

● false:该实例必须通过密码 认证才能访问。 若未配置该 参数则默认值为“false”。

缺省值:false bss_param 否 BssParam

object 表示包周期计费模式的相关参 数。如果为空,则默认计费模式 为按需计费;否则是包周期方 式。

instance_back

up_policy 否 BackupPolicy

object 备份策略,实例类型为主备和集 群时支持。

tags 否 Array of

ResourceTag objects

实例标签键值。

數據

表 5-3 BssParam 参数 是否必选 参数类型 描述 is_auto_renew 否 String 当选择包年包月时,该字段为必 选,表示是否自动续订资源。 取值范围: ● false:不自动续订; ● true:自动续订; 默认值 为:false 约束: 如果设置 为自动续订,到期后,会自 动续订一个月(自动续订时 间后续可能会变化),详情 可联系客服咨询。 缺省值:false 枚举值: ● true ● false charging_mod e 是 String 功能说明:付费方式(预付费、按需
表 5-4 BackupPolicy
表 5-10 响应 Body 参数 参数 参数类型 描述 error_msg String 错误信息 最大长度:1024 error_code String 错误码 最大长度:9
表 5-14 路径参数
+7

參考文獻

相關文件

1.依現行輸入規定,進口貨品除列屬「輸出入貨品分類表」第 61、62 章之紡織品 (進口特定紡織品免標示產地之適用條件表列項目除外)

[r]

[r]

We further want to be able to embed our KK GUTs in string theory, as higher dimensional gauge theories are highly non-renormalisable.. This works beautifully in the heterotic

Hikami proposed a state integral model which gives a topological invariant for hyperbolic 3-manifold.. Saddle Point of

◆ Understand the time evolutions of the matrix model to reveal the time evolution of string/gravity. ◆ Study the GGE and consider the application to string and

It should be stressed that the four eigenvalues obtained here do not change even if we include other field outside KBc subalgebra or outside the dressed B 0 gauge, since such fields

„ „ The The extended nature extended nature of string theory introduces of string theory introduces additional degrees of freedom?. additional degrees of freedom localized