创建缓存实例
功能介绍
创建缓存实例,该接口创建的缓存实例支持按需计费和包周期两种方式。
URI
POST /v1.0/{project_id}/instances
请求消息
请求参数
参数说明见表2。
参数 |
类型 |
必选 |
说明 |
---|---|---|---|
name |
String |
是 |
实例名称。 由英文字符开头,只能由英文字母、数字、中划线和下划线组成。 创建单个实例时,名称长度为4到64位的字符串。批量创建实例时,名称长度为4到56位的字符串,且实例名称格式为“自定义名称-n”,其中n从000开始,依次递增。例如,批量创建两个实例,自定义名称为dcs_demo,则两个实例的名称为dcs_demo-000和dcs_demo-001。 |
description |
String |
否 |
实例的描述信息。 长度不超过1024的字符串。
说明:
\与"在json报文中属于特殊字符,如果参数值中需要显示\或者"字符,请在字符前增加转义字符\,比如\\或者\"。 |
engine |
String |
是 |
缓存引擎:Redis和Memcached。 |
engine_version |
String |
是 |
缓存版本。当缓存引擎为Redis时,该字段为必填,取值为3.0、4.0或5.0。当缓存引擎为Memcached时,该字段为可选,取值可为空。 |
capacity |
Float |
是 |
缓存容量(G Byte)。
|
no_password_access |
String |
是 |
是否允许免密码访问缓存实例。
若未配置该参数则默认值为“false”。 |
password |
String |
否 |
缓存实例的认证信息。
说明:
当“no_password_access”配置为“false”或未配置时,请求消息中须包含password参数。 Redis类型的缓存实例密码复杂度要求:
|
access_user |
String |
否 |
当缓存类型为Redis时,则不需要设置,保持为空即可。 当缓存引擎为Memcached,且“no_password_access”为“false”时才需要设置,表示通过密码认证访问缓存实例的认证用户名。 由英文字符开头,只能由英文字母、数字、中划线和下划线组成,长度为1~64的字符。
说明:
|
vpc_id |
String |
是 |
虚拟私有云ID。 获取方法如下:
|
security_group_id |
String |
是 |
指定实例所属的安全组。 获取方法如下:
|
subnet_id |
String |
是 |
子网的网络ID。 获取方法如下:
|
available_zones |
Array |
是 |
创建缓存节点到指定且有资源的可用区ID。具体查询方法,请参考查询可用区信息,在查询时,请注意查看该可用区是否有资源。 如果是创建主备、Proxy集群、Cluster集群实例,支持跨可用区部署,可以为备节点指定备可用区。在为节点指定可用区时,用逗号分隔开,具体请查看示例。 |
product_id |
String |
是 |
支持创建的产品的标识。具体查询方法,请参考查询产品规格列表。 参数取值格式为:spec_code+“-”+ 计费模式缩写,计费模式缩写取值范围有:h、m、y。其中,h表示计费模式为按需;m表示计费模式为包月;y表示计费模式为包年。 例如:redis.single.au1.large.1-h,表示规格redis.single.au1.large.1的按需计费产品ID。
说明:
在查询产品规格中获取product_id时,请务必确保获取的product_id对应的计费模式和您选择的计费模式一致。例如,要订购按需计费、实例类型为Redis3.0的主备实例,可从接口响应消息中,查找charging_type字段为Hourly、spec_code字段为dcs.master_standby的记录对应的product_id。 |
instance_backup_policy |
JSON |
否 |
|
enable_publicip |
Boolean |
否 |
Redis缓存实例是否开启公网访问功能。
|
publicip_id |
String |
否 |
Redis缓存实例绑定的弹性IP地址的id。 如果开启了公网访问功能(即enable_publicip为true),该字段为必选。 |
enable_ssl |
Boolean |
否 |
Redis缓存实例开启公网访问功能时,是否选择支持ssl。
|
maintain_begin |
String |
否 |
维护时间窗开始时间,格式为HH:mm:ss。
|
maintain_end |
String |
否 |
维护时间窗结束时间,格式为HH:mm:ss。
|
enterprise_project_id |
String |
否 |
企业项目ID。 |
enterprise_project_name |
String |
否 |
企业项目名称。 |
instance_num |
Integer |
否 |
表示批量创建缓存实例时,购买的实例个数。仅Redis和Memcached实例支持批量创建。 默认值:1 取值范围:1-100 |
private_ip |
String |
否 |
创建缓存实例手动指定的IP地址,支持Redis和Memcached。 |
bss_param |
JSON |
否 |
表示包周期计费模式的相关参数。如果为空,则默认计费模式为按需计费;如果是包周期方式,请参考表6设置。 |
tags |
Array of objects |
否 |
实例标签键值。具体请参考表3。 |
port |
Integer |
否 |
实例自定义端口。只有创建Redis4.0和Redis5.0实例才支持自定义端口,Redis3.0和Memcached实例不支持。 创建Redis4.0和Redis5.0实例,如果没发送该参数或该参数为空,表示实例使用默认端口6379。如果自定义端口,端口范围为1~65535的任意数字。 |
rename_commands |
JSON |
否 |
支持自定义重命名高危命令。只有创建Redis4.0和Redis5.0实例才支持重命名高危命令,Redis3.0和Memcached实例不支持。 创建Redis4.0和Redis5.0实例,如果没发送该参数或该参数为空,表示没有需要重命名的命令。当前支持重命名的高危命令有command、keys、flushdb、flushall和hgetall,其他命令暂不支持重命名。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
标签键。
|
value |
否 |
String |
标签值。
|
参数 |
类型 |
必选 |
说明 |
---|---|---|---|
save_days |
Integer |
否 |
当backup_type设置为manual时,该参数为必填。 保留天数,单位:天,取值范围:1-7。 |
backup_type |
String |
否 |
备份类型。
默认值是:manual。 |
periodical_backup_plan |
JSON |
是 |
备份计划,具体请参考表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节点的当前时区。 |
参数 |
类型 |
必选 |
说明 |
---|---|---|---|
charging_mode |
String |
是 |
功能说明:付费方式(预付费、按需付费;预付费,即包周期付费) 取值范围:
默认值是postPaid。 后付费的场景下,bss_param参数的其他字段都会被忽略。 |
is_auto_pay |
String |
否 |
功能说明:下单订购后,是否自动从客户的账户中支付;默认是“不自动支付” 取值范围:
约束: 自动支付时,只能使用账户的现金支付;如果要使用代金券,请选择不自动支付,然后在用户费用中心,选择代金券支付。 如果没有设置成自动支付,即设置为false时,在创建实例之后,实例状态为“支付中”,用户必须在“费用中心 > 我的订单”,完成订单支付,否则订单一直在支付中,实例没有创建成功。 |
period_type |
String |
否 |
当选择包年包月时,该字段为必选,表示订购资源的周期类型。 取值范围如下:
|
period_num |
Integer |
否 |
功能说明:订购周期数 取值范围:(后续会随运营策略变化)
约束:同period_type约束。 |
is_auto_renew |
String |
否 |
当选择包年包月时,该字段为必选,表示是否自动续订资源。 取值范围:
默认值为:false 约束: 如果设置为自动续订,到期后,会自动续订一个月(自动续订时间后续可能会变化),详情可联系技术支持咨询。 |
请求示例
请求URL:
POST https://{dcs_endpoint}/v1.0/{project_id}/instances
- 示例:
创建Redis实例
{ "name": "dcs-APITest", "description": "Test", "engine": "Redis", "engine_version": "3.0", "capacity": 2, "enterprise_project_id": "0", "enterprise_project_name": "default", "no_password_access": false, "access_user": "", "password": "********", "vpc_id": "0402ea19-5457-4032-9d1b-eb48b98f6c66", "security_group_id": "4b95a790-5cfc-463d-8de5-42199e55371c", "subnet_id": "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88", "available_zones": [ "12c47a78666b4e438cd0c692b9860387" ], "maintain_begin": "02:00", "maintain_end": "06:00", "product_id": "dcs.master_standby-h", "enable_publicip": false, "publicip_id": "", "enable_ssl": false, "private_ip": "", "instance_num": 1 }
- 示例
创建按需的Redis主备实例(设置了标签、自定义端口、重命名高危命令、跨可用区部署)
{ "name": "dcs-demo", "engine": "Redis", "engine_version": "4.0", "capacity": 2, "no_password_access": true, "vpc_id": "c5cd009b-9ba9-41f2-9a26-2b8c3f3ffd39", "subnet_id": "7e95c4d6-d7af-424c-a3cf-2be10968fe81", "product_id": "redis.ha.au1.large.2-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" }] }
- 示例:
{ "name": "dcs-APITest1", "description": "", "engine": "Redis", "engine_version": "3.0.7", "capacity": 2, "enterprise_project_id": "0", "enterprise_project_name": "default", "no_password_access": false, "access_user": "", "password": "********", "vpc_id": "0402ea19-5457-4032-9d1b-eb48b98f6c66", "security_group_id": "4b95a790-5cfc-463d-8de5-42199e55371c", "subnet_id": "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88", "available_zones": [ "12c47a78666b4e438cd0c692b9860387" ], "maintain_begin": "02:00", "maintain_end": "06:00", "product_id": "dcs.master_standby-m", "enable_publicip": false, "publicip_id": "", "enable_ssl": false, "instance_num": 1, "private_ip": "", "instance_backup_policy": { "save_days": 1, "backup_type": "auto", "periodical_backup_plan": { "begin_at": "16:00-17:00", "period_type": "weekly", "backup_at": [ "1", "2", "3", "4", "5", "6", "7" ], "timezone_offset": "+0800" } }, "bss_param": { "charging_mode": "prePaid", "is_auto_pay": "true", "period_type": "month", "period_num": "1", "is_auto_renew": "false" } }
- 示例:
{ "name": "dcs-k3ej", "description": "", "engine": "Redis", "engine_version": "3.0.7", "capacity": 64, "enterprise_project_id": "0", "enterprise_project_name": "default", "no_password_access": true, "access_user": "", "password": "", "vpc_id": "0402ea19-5457-4032-9d1b-eb48b98f6c66", "security_group_id": "4b95a790-5cfc-463d-8de5-42199e55371c", "subnet_id": "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88", "available_zones": [ "12c47a78666b4e438cd0c692b9860387" ], "maintain_begin": "02:00", "maintain_end": "06:00", "product_id": "dcs.cluster-m", "enable_publicip": false, "publicip_id": "", "enable_ssl": false, "instance_num": 1, "private_ip": "", "instance_backup_policy": { "save_days": 1, "backup_type": "auto", "periodical_backup_plan": { "begin_at": "16:00-17:00", "period_type": "weekly", "backup_at": [ "1", "2", "3", "4", "5", "6", "7" ], "timezone_offset": "+0800" } }, "bss_param": { "charging_mode": "prePaid", "is_auto_pay": "true", "period_type": "month", "period_num": "1", "is_auto_renew": "false" } }
- 示例:
{ "name": "dcs-a11b", "description": "Create an 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": "true", "access_user": "", "timezone_offset":"" }
响应消息
响应参数
参数 |
类型 |
说明 |
---|---|---|
instance_id |
String |
缓存实例ID。 如果批量创建实例,则会返回多个实例ID,以逗号分隔。
说明:
该参数用于兼容老版本,参数列出的实例列表与instances相同。 |
instances |
JSON |
缓存实例列表。具体参数,请参考表8。 |
响应示例
如果是按需实例,响应消息如下:
{ "instances": [ { "instance_id": "3c49fd6b-fc7c-419e-9644-b6cce008653f", "instance_name": "dcs-test005" } ], "instance_id": "3c49fd6b-fc7c-419e-9644-b6cce008653f" }
如果是包周期实例,响应消息如下:
{ "instance_id": "77284d69-cd51-4bf1-aa30-2e60f055800c", "order_id": "CS2005091653L2DAM", "instances": [ { "instance_id": "77284d69-cd51-4bf1-aa30-2e60f055800c", "instance_name": "dcs-APITest1" } ] }