更新时间:2022-08-06 GMT+08:00

创建缓存实例

功能介绍

创建缓存实例。

URI

POST /v1.0/{project_id}/instances

参数说明见表1
表1 参数说明

参数

类型

必选

说明

project_id

String

项目ID。获取方式,参考获取项目ID

请求消息

请求参数

参数说明见表2

表2 参数说明

参数

类型

必选

说明

name

String

实例名称。

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

description

String

实例的描述信息。

长度不超过1024的字符串。

说明:

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

engine

String

缓存引擎:Redis和Memcached。

engine_version

String

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

spec_code

String

DCS的产品规格编码。

具体取值可以在分布式缓存服务控制台,创建实例页面中查看“实例规格>规格名称”。

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、24、48、64。Cluster集群实例规格支持4、8、16、24、32、48、64、96、128、192、256、384、512、768、1024。
  • Memcached:单机和主备类型实例取值:2、4、8、16、32、64。

password

String

缓存实例的认证信息。

Redis类型的缓存实例密码复杂度要求:

  • 输入长度为8到32位的字符串。
  • 新密码不能与旧密码相同。
  • 必须包含如下四种字符中的三种组合:
    • 小写字母
    • 大写字母
    • 数字
    • 特殊字符包括(`~!@#$^&*()-_=+\|{}:,<.>/?)

access_user

String

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

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

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

说明:
  • 当缓存引擎为Memcached时,该参数为可选项。
  • 当缓存引擎为Redis时,该参数不需要设置。

vpc_id

String

虚拟私有云ID。

获取方法如下:

  • 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。
  • 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考《虚拟私有云 API参考》的“查询VPC列表”。

security_group_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接口查询,具体操作可参考《虚拟私有云 API参考》的“查询安全组列表”。

subnet_id

String

子网的网络ID。

获取方法如下:

  • 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。
  • 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考《虚拟私有云 API参考》的“查询子网列表”。

available_zones

Array

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

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

instance_backup_policy

Object

备份策略,实例类型为主备和集群时支持。具体备份参数,请参考表4表5

maintain_begin

String

维护时间窗开始时间,格式为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

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

  • 结束时间在开始时间基础上加四个小时,即当开始时间为22:00:00时,结束时间为02:00:00。
  • 该参数不能单独为空,若该值为空,则开始时间也为空,系统分配一个默认结束时间06:00:00。

tags

Array of Objects

实例标签键值。具体请参考表3

port

Integer

实例自定义端口。只有创建Redis4.0和Redis5.0实例才支持自定义端口,Redis3.0和Memcached实例不支持。

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

rename_commands

Object

支持自定义重命名高危命令。只有创建Redis4.0和Redis5.0实例才支持重命名高危命令,Redis3.0和Memcached实例不支持。

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

表3 tags参数说明

参数

是否必选

参数类型

描述

key

String

标签键。

  • 不能为空。
  • 对于同一资源键值唯一。
  • 长度不超过36个字符。

value

String

标签值。

  • action为create时,必选。action为delete时,非必选。
  • 长度不超过43个字符。
表4 备份策略

参数

类型

必选

说明

save_days

Integer

当backup_type设置为manual时,该参数为必填。

保留天数,单位:天,取值范围:1-7。

backup_type

String

备份类型。

  • auto:自动备份
  • manual:手动备份

默认值是:manual。

periodical_backup_plan

Object

备份计划,具体请参考表5

表5 备份计划

参数

类型

必选

说明

begin_at

String

备份执行时间,“00:00-01:00”代表0点开始执行备份。

period_type

String

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

backup_at

Array

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

timezone_offset

String

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

请求示例

  • 请求URL:
    POST https://{dcs_endpoint}/v1.0/{project_id}/instances
  • 示例:
    {
        "name": "dcs-a11e",
        "description": "Create a instance",
        "engine": "Redis",
        "engine_version": "3.0",
        "capacity": 2,
        "spec_code": "XXXXXX",
        "password": "XXXXXX",
        "vpc_id": "27d99e17-42f2-4751-818f-5c8c6c03ff15",
        "security_group_id": "1477393a-29c9-4de5-843f-18ef51257c7e",
        "subnet_id": "ec2f34b9-20eb-4872-85bd-bea9fc943128",
        "available_zones": ["ae04cf9d61544df3806a3feeb401b204","d573142f24894ef3bd3664de068b44b0"],
        "product_id": "XXXXXX",
        "instance_backup_policy": {
            "save_days": 1,
            "backup_type": "auto",
            "periodical_backup_plan": {
                "begin_at": "00:00-01:00",
                "period_type": "weekly",
                "backup_at": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                ]
            }
        },
        "maintain_begin": "22:00:00",
        "maintain_end": "02:00:00"
    }
  • 示例

    创建按需的Redis主备实例(设置了标签、自定义端口、重命名高危命令、跨可用区部署)

    {
    	"name": "dcs-demo",
    	"engine": "Redis",
    	"engine_version": "4.0",
    	"capacity": 2,
            "spec_code": "redis.ha.au1.large.**",
    	"no_password_access": true,
    	"vpc_id": "c5cd009b-9ba9-41f2-9a26-2b8c3f3ffd39",
    	"subnet_id": "7e95c4d6-d7af-424c-a3cf-2be10968fe81",
    	"product_id": "redis.ha.au1.large.**-h",
    	"available_zones": ["ae04cf9d61544df3806a3feeb401b204",	"d573142f24894ef3bd3664de068b44b0"],
    	"security_group_id": "d57fad27-e3e9-43b7-9498-0a698ab63b27",
    	"port": "4040",
            "rename_commands": 
             {
               "keys":"keys001",
               "flushdb":"flushdb001",
               "flushall":"flushall001"
             },
    	"tags": [{
    	"key": "dcs001",
    	"value": "002"
    },
    {
    	"key": "dcs003",
    	"value": "004"
    }]
    }
  • 示例:

    创建Memcached主备实例(设置了备份策略)

    {
        "name": "dcs-a11b",
        "description": "Create a instance",
        "engine": "Memcached",
        "engine_version": "",
        "capacity": 2,
        "password": "XXXXXX",
        "vpc_id": "27d99e17-42f2-4751-818f-5c8c6c03ff16",
        "security_group_id": "1477393a-29c9-4de5-843f-18ef51257c8e",
        "subnet_id": "ec2f34b9-20eb-4872-85bd-bea9fc943129",
        "available_zones": [
            "1d7b939b382c4c3bb3481a8ca10da769"
        ],
        "product_id": "XXXXXX",
        "instance_backup_policy": {
            "save_days": 1,
            "backup_type": "auto",
            "periodical_backup_plan": {
                "begin_at": "00:00-01:00",
                "period_type": "weekly",
                "backup_at": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                ]
            }
        },
        "maintain_begin": "22:00:00",
        "maintain_end": "02:00:00",
        "no_password_access": "false",
        "access_user": "",
        "timezone_offset":""
    }

响应消息

响应参数

参数说明见表6
表6 参数说明

参数

类型

说明

instance_id

String

缓存实例ID。

instances

Array of Objects

缓存实例列表。具体参数,请参考表7

表7 instances参数说明

参数

类型

说明

instance_id

String

缓存实例ID。

instance_name

String

缓存实例名称。

响应示例

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

状态码

操作成功的状态码如表8所示,其他响应见表1

表8 状态码

状态码

描述

200

创建缓存实例成功。