更新时间:2023-11-28 GMT+08:00
分享

创建缓存实例

功能介绍

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

URI

POST /v1.0/{project_id}/instances

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

参数

类型

必选

说明

project_id

String

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

请求消息

请求参数

参数说明见表2

表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)。

  • 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。

no_password_access

String

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

  • true:该实例无需密码即可访问。
  • false:该实例必须通过密码认证才能访问。

若未配置该参数则默认值为“false”。

password

String

缓存实例的认证信息。

说明:

当“no_password_access”配置为“false”或未配置时,请求消息中须包含password参数。

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接口查询,具体操作可参考查询VPC列表

security_group_id

String

指定实例所属的安全组。

获取方法如下:

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

subnet_id

String

子网的网络ID。

获取方法如下:

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

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

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

enable_publicip

Boolean

Redis缓存实例是否开启公网访问功能。

  • true:开启
  • false:不开启

publicip_id

String

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

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

enable_ssl

Boolean

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

  • true:开启
  • false:不开启

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。

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,其他命令暂不支持重命名。

表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

JSON

备份计划,具体请参考表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节点的当前时区。

表6 bss_param参数说明

参数

类型

必选

说明

charging_mode

String

功能说明:付费方式(预付费、按需付费;预付费,即包周期付费)

取值范围:

  • prePaid -预付费,即包年包月;
  • postPaid -后付费,即按需付费;

默认值是postPaid。

后付费的场景下,bss_param参数的其他字段都会被忽略。

is_auto_pay

String

功能说明:下单订购后,是否自动从客户的账户中支付;默认是“不自动支付”

取值范围:

  • true:是(自动支付,从账户余额自动扣费)
  • false:否(默认值,只提交订单不支付,需要客户手动去支付)

约束:

自动支付时,只能使用账户的现金支付;如果要使用代金券,请选择不自动支付,然后在用户费用中心,选择代金券支付。

如果没有设置成自动支付,即设置为false时,在创建实例之后,实例状态为“支付中”,用户必须在“费用中心 > 我的订单”,完成订单支付,否则订单一直在支付中,实例没有创建成功。

period_type

String

当选择包年包月时,该字段为必选,表示订购资源的周期类型。

取值范围如下:

  • month:表示包月
  • year:表示包年

period_num

Integer

功能说明:订购周期数

取值范围:(后续会随运营策略变化)

  • period_type为month时,为[1,9],
  • period_type为year时,为[1,3]

约束:同period_type约束。

is_auto_renew

String

当选择包年包月时,该字段为必选,表示是否自动续订资源。

取值范围:

  • false:不自动续订;
  • true:自动续订;

默认值为: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"
    }]
    }
  • 示例:

    创建包周期的Redis主备实例(设置了备份策略)

    {
        "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"
        }
    }
  • 示例:

    创建包周期的Redis集群实例(设置了备份策略)

    {
        "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"
        }
    }
  • 示例:

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

    {
        "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":""
    }

响应消息

响应参数

参数说明见表7
表7 参数说明

参数

类型

说明

instance_id

String

缓存实例ID。

如果批量创建实例,则会返回多个实例ID,以逗号分隔。

说明:

该参数用于兼容老版本,参数列出的实例列表与instances相同。

instances

JSON

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

表8 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"
}

如果是包周期实例,响应消息如下:

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

状态码

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

表9 状态码

状态码

描述

200

创建缓存实例成功。

相关文档