更新时间:2023-12-13 GMT+08:00

创建缓存实例

功能介绍

创建缓存实例,该接口创建的缓存实例支持按需计费。

URI

POST /v2/{project_id}/instances

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。获取方法请参见获取项目ID

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

name

String

实例名称。

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

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

engine

String

缓存引擎:Redis和Memcached。

engine_version

String

缓存版本。

当缓存引擎为Redis时,该字段为必选,取值为3.0、4.0、5.0、6.0。

当缓存引擎为Memcached时,该字段为可选,取值为空。

capacity

Float

缓存容量(G Byte)

  • Redis3.0:单机和主备类型实例取值:2、4、8、16、32、64。Proxy集群实例规格支持64、128、256、512和1024。

  • Redis4.0和Redis5.0、Redis 6.0:单机和主备类型实例取值:0.125、0.25、0.5、1、2、4、8、16、32、64。集群实例规格取值:4、8、16、24、32、48、64、96、128、192、256、384、512、768、1024。

  • Memcached:单机和主备类型实例取值:2、4、8、16、32、64。

spec_code

String

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

  • 方法一:登录分布式缓存的控制台界面创建缓存实例页面,查找对应的实例规格名称。

  • 方法二:调用查询产品规格接口查询。

az_codes

Array of strings

创建缓存节点到指定且有资源的可用区Code。创建缓存节点到指定且有资源的可用区Code。具体查询方法,请参考查询可用区信息接口,在查询时,请注意查看该可用区是否有资源。

如果是创建主备、Proxy集群、Cluster集群实例,支持跨可用区部署,可以为备节点指定备可用区。在为节点指定可用区时,用逗号分隔开,具体请查看示例。

vpc_id

String

虚拟私有云ID。

获取方法如下:

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

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

subnet_id

String

子网的网络ID。

获取方法如下:

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

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

security_group_id

String

指定实例所属的安全组。

当engine为Memcached时,该参数为必选。Memcached实例支持安全组访问控制。

当engine为Redis且engine_version为4.0、5.0和6.0时,该参数为可选,engine_version为3.0时,该参数为必选。Redis4.0及以上版本的实例不支持安全组控制访问,只支持白名单控制。

获取方法如下:

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

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

publicip_id

String

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

缺省值:false

enterprise_project_id

String

企业项目ID。

enterprise_project_name

String

企业项目名称。

description

String

实例的描述信息。

长度不超过1024的字符串。

说明:

\与"在json报文中属于特殊字符,如果参数值中需要显示\或者"字符,请在字符前增加转义字符\,比如\\或者\"。

enable_ssl

Boolean

|

private_ip

String

创建缓存实例手动指定的IP地址,支持Redis。

instance_num

Integer

表示批量创建缓存实例时,创建的实例个数。仅Redis实例支持批量创建。

默认值:1

取值范围:1-100

缺省值:1

maintain_begin

String

维护时间窗开始时间,为UTC时间,格式为HH:mm:ss

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

  • 开始时间必须为18:00:00、19:00:00等整点时间。

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

maintain_end

String

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

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

  • 结束时间在开始时间基础上加一个小时,即当开始时间为18:00:00时,结束时间为19:00:00。

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

password

String

缓存实例的认证信息

说明:

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

  • 输入长度为8到64位的字符串。

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

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

    • 小写字母

    • 大写字母

    • 数字

    • 特殊字符包括(`~!@#$^&*()-_=+\|{},<.>/?)

no_password_access

Boolean

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

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

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

缺省值:false

bss_param

BssParam object

表示计费模式的相关参数。如果为空,则默认计费模式为按需计费;暂不支持其他计费方式。

instance_backup_policy

BackupPolicy object

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

tags

Array of ResourceTag objects

实例标签键值。

access_user

String

当缓存类型为Redis时,则不需要设置,保持为空即可。

当缓存引擎为Memcached,且“no_password_access”为“false”时才需要设置,表示通过密码认证访问缓存实例的认证用户名。

由英文字符开头,只能由英文字母、数字、中划线和下划线组成,长度为1~64的字符。

  • 当缓存引擎为Memcached时,该参数为可选项。

enable_publicip

Boolean

该参数未启用,保持为缺省值即可。

缺省值:false

port

Integer

实例自定义端口。只有创建Redis 4.0以上版本的实例才支持自定义端口,Redis 3.0和Memcached实例不支持。

创建Redis4.0、Redis5.0、Redis6.0实例,如果没发送该参数或该参数为空,表示实例使用默认端口6379。如果自定义端口,端口范围为1~65535的任意数字。

rename_commands

Object

支持自定义重命名高危命令。只有创建Redis4.0及以上版本的实例才支持重命名高危命令,Redis3.0和Memcached实例不支持。

创建Redis4.0、Redis5.0、Redis6.0实例,如果没发送该参数或该参数为空,表示没有需要重命名的命令。当前支持重命名的高危命令有command、keys、flushdb、flushall、scan、hscan、sscan、zscan和hgetall,其他命令暂不支持重命名。Redis3.0版本的实例不支持高危命令重命名。

template_id

String

参数模板ID。

表3 BssParam

参数

是否必选

参数类型

描述

is_auto_renew

String

该参数暂未启用。

缺省值:false

charging_mode

String

付费方式。默认值是postPaid,即按需付费。

缺省值:postPaid

is_auto_pay

String

该参数暂未启用。

period_type

String

该参数暂未启用。

period_num

Integer

该参数暂未启用。

表4 BackupPolicy

参数

是否必选

参数类型

描述

backup_type

String

备份类型。

  • auto:自动备份

  • manual:手动备份

save_days

Integer

当backup_type设置为auto时,该参数为必填。 保留天数,单位:天,取值范围:1-7。

periodical_backup_plan

BackupPlan object

备份计划,当backup_type设置为auto时,该参数为必填。

表5 BackupPlan

参数

是否必选

参数类型

描述

timezone_offset

String

备份的时区。取值为-1200 ~+1200之间的时区。若为空则默认使用DCS-Server节点的当前时区。

backup_at

Array of integers

每周的周几开始备份,取值1-7,1代表周一,7代表周日。

period_type

String

备份周期类型,目前支持“weekly”。

begin_at

String

备份执行时间,“00:00-01:00”代表0点开始执行备份。只能是整点时间段,间隔时间限定为一个小时。

表6 ResourceTag

参数

是否必选

参数类型

描述

key

String

标签键

  • 不能为空。

  • 对于同一资源键值唯一。

  • 长度不超过36个字符。

  • 标签的键必须唯一且输入不能为空。

value

String

标签值

  • action为create时必选。action为delete时非必选。

  • 长度不超过43个字符。

响应参数

状态码: 200

表7 响应Body参数

参数

参数类型

描述

instances

Array of Instances objects

缓存实例ID和名称,如果批量创建实例,则会返回多个。

表8 Instances

参数

参数类型

描述

instance_id

String

缓存实例ID。

instance_name

String

缓存实例名称。

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息

最大长度:1024

error_code

String

错误码

最大长度:9

error_ext_msg

String

扩展错误信息(暂未使用,赋值为null)

最大长度:1024

状态码: 401

表10 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息

最大长度:1024

error_code

String

错误码

最大长度:9

error_ext_msg

String

扩展错误信息(暂未使用,赋值为null)

最大长度:1024

状态码: 403

表11 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息

最大长度:1024

error_code

String

错误码

最大长度:9

error_ext_msg

String

扩展错误信息(暂未使用,赋值为null)

最大长度:1024

状态码: 404

表12 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息

最大长度:1024

error_code

String

错误码

最大长度:9

error_ext_msg

String

扩展错误信息(暂未使用,赋值为null)

最大长度:1024

状态码: 500

表13 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息

最大长度:1024

error_code

String

错误码

最大长度:9

error_ext_msg

String

扩展错误信息(暂未使用,赋值为null)

最大长度:1024

请求示例

  • 创建Redis实例

    POST https://{dcs_endpoint}/v2/{project_id}/instances
    
    {
      "name" : "dcs-APITest",
      "description" : "Test",
      "engine" : "Redis",
      "engine_version" : "5.0",
      "enterprise_project_id" : 0,
      "enterprise_project_name" : "default",
      "vpc_id" : "5e37b3be-950a-48e1-b498-65b63d336481",
      "security_group_id" : "securityGroupId",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "region01" ],
      "capacity" : 1,
      "access_user" : "",
      "password" : "********",
      "enable_publicip" : false,
      "spec_code" : "redis.single.xu1.large.1",
      "subnet_id" : "a4112635-3ec0-471c-95c3-5cf49b9533af",
      "no_password_access" : false,
      "template_id" : "b3ecc9c7-1133-4c47-a06a-21366e227d61"
    }
  • 创建按需的Redis主备实例(设置了自定义端口、重命名高危命令、跨可用区部署)

    {
      "enterprise_project_name" : "default",
      "vpc_id" : "c5cd009b-9ba9-41f2-9a26-2b8c3f3ffd39",
      "description" : "Test",
      "security_group_id" : "d57fad27-e3e9-43b7-9498-0a698ab63b27",
      "port" : 4040,
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "region01", "region02" ],
      "capacity" : 2,
      "access_user" : "",
      "instance_num" : 1,
      "enterprise_project_id" : 0,
      "password" : "********",
      "enable_publicip" : false,
      "engine" : "Redis",
      "spec_code" : "redis.ha.au1.large.2",
      "name" : "dcs-demo",
      "subnet_id" : "7e95c4d6-d7af-424c-a3cf-2be10968fe81",
      "engine_version" : "4.0",
      "no_password_access" : false,
      "rename_commands" : {
        "keys" : "keys001",
        "flushdb" : "flushdb001",
        "flushall" : "flushall001"
      }
    }

响应示例

状态码: 200

下发创建缓存实例任务成功。

查看实例状态为RUNNING时,即缓存实例创建成功。

  • 示例 1

    {
      "instances" : [ {
        "instance_id" : "3c49fd6b-fc7c-419e-9644-b6cce008653f",
        "instance_name" : "dcs-test005"
      } ]
    }
  • 示例 2

    {
      "instances" : [ {
        "instance_id" : "77284d69-cd51-4bf1-aa30-2e60f055800c",
        "instance_name" : "dcs-APITest1"
      } ]
    }

状态码: 400

非法请求。

{
  "error_code" : "DCS.1004",
  "error_msg" : "Project ID does not match the token."
}

状态码: 401

认证信息非法。

{
  "error_code" : "DCS.1001",
  "error_msg" : "Invalid token."
}

状态码: 403

请求被拒绝访问。

{
  "error_code" : "DCS.2003",
  "error_msg" : "This role does not have the permission to perform this operation."
}

状态码: 404

所请求的资源不存在。

{
  "error_code" : "DCS.4001",
  "error_msg" : "The requested URL does not exist."
}

状态码: 500

内部服务错误

{
  "error_code" : "DCS.5000",
  "error_msg" : "Internal service error."
}

状态码

状态码

描述

200

下发创建缓存实例任务成功。

说明:

查看实例状态为RUNNING时,即缓存实例创建成功。

400

非法请求。

401

认证信息非法。

403

请求被拒绝访问。

404

所请求的资源不存在。

500

内部服务错误

错误码

请参见错误码