更新时间:2022-05-13 GMT+08:00
分享

创建缓存实例

功能介绍

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

调试

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

URI

POST /v2/{project_id}/instances

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目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时,取值为4.0或5.0。

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

capacity

Float

缓存容量(G Byte)

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

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

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

publicip_id

String

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

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

缺省值:false

enterprise_project_id

String

企业项目ID。

enterprise_project_name

String

企业项目名称。

description

String

实例的描述信息。

长度不超过1024的字符串。

说明:

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

enable_ssl

Boolean

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

  • true:开启

  • false:不开启

private_ip

String

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

instance_num

Integer

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

默认值: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到32位的字符串。

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

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

    • 小写字母

    • 大写字母

    • 数字

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

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时,该参数为可选项。

  • 当缓存引擎为Redis时,该参数不需要设置。

enable_publicip

Boolean

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

  • true:开启

  • false:不开启

缺省值:false

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 BssParam

参数

是否必选

参数类型

描述

is_auto_renew

String

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

  • false:不自动续订;

  • true:自动续订; 默认值为:false 约束: 如果设置为自动续订,到期后,会自动续订一个月(自动续订时间后续可能会变化),详情可联系客服咨询。

缺省值:false

枚举值:

  • true

  • false

charging_mode

String

功能说明:付费方式(预付费、按需付费;预付费,即包周期付费)。 取值范围: - prePaid:预付费,即包年包月;

  • postPaid:后付费,即按需付费; 默认值是postPaid。 后付费的场景下,bss_param参数的其他字段都会被忽略。

缺省值:postPaid

枚举值:

  • prePaid

  • postPaid

is_auto_pay

String

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

取值范围:

  • true:是(自动支付,从账户余额自动扣费)

  • false:否(默认值,只提交订单不支付,需要客户手动去支付)

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

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

枚举值:

  • true

  • false

period_type

String

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

取值范围如下:

  • month:表示包月

  • year:表示包年

枚举值:

  • month

  • year

period_num

Integer

功能说明:订购周期数 当选择按需时,该字段非必选。 [取值范围:(后续会随运营策略变化)

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

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

约束:同period_type约束。

表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

备份的时区。该参数已废弃,没有实际作用。

backup_at

Array of integers

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

period_type

String

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

begin_at

String

备份开始执行时间,该时间为UTC时间,例如“00:00-01:00”代表北京时间8点开始执行备份。

表6 ResourceTag

参数

是否必选

参数类型

描述

key

String

标签键

  • 不能为空。

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

  • 长度不超过36个字符。

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

value

String

标签值

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

  • 长度不超过43个字符。

响应参数

状态码: 200

表7 响应Body参数

参数

参数类型

描述

order_id

String

订单ID,仅在创建包周期实例时返回。

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" : 3.0,
      "enterprise_project_id" : 0,
      "enterprise_project_name" : "default",
      "vpc_id" : "0402ea19-5457-4032-9d1b-eb48b98f6c66",
      "security_group_id" : "4b95a790-5cfc-463d-8de5-42199e55371c",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "cn-north-4a" ],
      "capacity" : 2,
      "access_user" : "",
      "instance_num" : 1,
      "maintain_begin" : "18:00:00",
      "maintain_end\"" : "19:00:00",
      "password" : "********",
      "enable_publicip" : false,
      "spec_code" : "dcs.single_node",
      "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88",
      "no_password_access" : false
    }
  • 创建按需的Redis主备实例(设置了标签、自定义端口、重命名高危命令、跨可用区部署)

    {
      "enterprise_project_name" : "default",
      "vpc_id" : "c5cd009b-9ba9-41f2-9a26-2b8c3f3ffd39",
      "description" : "Test",
      "security_group_id" : "d57fad27-e3e9-43b7-9498-0a698ab63b27",
      "port" : 4040,
      "maintain_end\"" : "19:00:00",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "cn-north-4a", "cn-north-4b" ],
      "capacity" : 2,
      "access_user" : "",
      "instance_num" : 1,
      "maintain_begin" : "18:00:00",
      "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" : true,
      "rename_commands" : {
        "keys" : "keys001",
        "flushdb" : "flushdb001",
        "flushall" : "flushall001"
      },
      "tags" : [ {
        "key" : "dcs001",
        "value" : 2
      }, {
        "key" : "dcs003",
        "value" : 4
      } ]
    }
  • 创建包周期的Redis主备实例(设置了备份策略)

    {
      "publicip_id" : "",
      "enterprise_project_name" : "default",
      "vpc_id" : "0402ea19-5457-4032-9d1b-eb48b98f6c66",
      "description" : "Test",
      "security_group_id" : "4b95a790-5cfc-463d-8de5-42199e55371c",
      "maintain_begin" : "18:00:00",
      "maintain_end\"" : "19:00:00",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "cn-north-4a" ],
      "capacity" : 2,
      "access_user" : "",
      "instance_num" : 1,
      "enterprise_project_id" : 0,
      "password" : "********",
      "enable_publicip" : false,
      "engine" : "Redis",
      "spec_code" : "dcs.master_standy",
      "name" : "dcs-APITest1",
      "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88",
      "engine_version" : 3.0,
      "no_password_access" : false,
      "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 ]
        }
      },
      "bss_param" : {
        "charging_mode" : "prePaid",
        "is_auto_pay" : true,
        "period_type" : "month",
        "period_num" : 1,
        "is_auto_renew" : false
      }
    }
  • 创建包周期的Redis集群实例(设置了备份策略)

    {
      "publicip_id" : "",
      "enterprise_project_name" : "default",
      "vpc_id" : "0402ea19-5457-4032-9d1b-eb48b98f6c66",
      "description" : "Test",
      "security_group_id" : "4b95a790-5cfc-463d-8de5-42199e55371c",
      "maintain_end\"" : "19:00:00",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "cn-north-4a" ],
      "capacity" : 64,
      "access_user" : "",
      "instance_num" : 1,
      "maintain_begin" : "18:00:00",
      "enterprise_project_id" : 0,
      "password" : "",
      "enable_publicip" : false,
      "engine" : "Redis",
      "spec_code" : "dcs.cluster",
      "name" : "dcs-APITest2",
      "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88",
      "engine_version" : 3.0,
      "no_password_access" : true,
      "bss_param" : {
        "charging_mode" : "prePaid",
        "is_auto_pay" : true,
        "period_type" : "month",
        "period_num" : 1,
        "is_auto_renew" : false
      },
      "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 ]
        }
      }
    }
  • 创建Memcached主备实例(设置了备份策略)

    {
      "publicip_id" : "",
      "enterprise_project_name" : "default",
      "vpc_id" : "0402ea19-5457-4032-9d1b-eb48b98f6c66",
      "description" : "Test",
      "security_group_id" : "4b95a790-5cfc-463d-8de5-42199e55371c",
      "maintain_end\"" : "19:00:00",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "cn-north-4a" ],
      "capacity" : 2,
      "access_user" : "",
      "instance_num" : 1,
      "maintain_begin" : "18:00:00",
      "enterprise_project_id" : 0,
      "password" : "********",
      "enable_publicip" : false,
      "engine" : "Memcached",
      "spec_code" : "dcs.memcached.master_standby",
      "name" : "dcs-APITest",
      "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88",
      "engine_version" : "",
      "no_password_access" : false,
      "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 ]
        }
      }
    }
  • 创建Memcached单机实例

    {
      "publicip_id" : "",
      "enterprise_project_name" : "default",
      "vpc_id" : "0402ea19-5457-4032-9d1b-eb48b98f6c66",
      "description" : "Test",
      "security_group_id" : "4b95a790-5cfc-463d-8de5-42199e55371c",
      "maintain_end\"" : "19:00:00",
      "enable_ssl" : false,
      "private_ip" : "",
      "az_codes" : [ "cn-north-4a" ],
      "capacity" : 2,
      "access_user" : "",
      "instance_num" : 1,
      "maintain_begin" : "18:00:00",
      "enterprise_project_id" : 0,
      "password" : "********",
      "enable_publicip" : false,
      "engine" : "Memcached",
      "spec_code" : "dcs.memcached.single_node",
      "name" : "dcs-APITest",
      "subnet_id" : "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88",
      "engine_version" : "",
      "no_password_access" : false,
      "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 ]
        }
      }
    }

响应示例

状态码: 200

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

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

  • 示例 1

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

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

状态码

状态码

描述

200

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

说明:

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

400

非法请求。

401

认证信息非法。

403

请求被拒绝访问。

404

所请求的资源不存在。

500

内部服务错误

错误码

请参见错误码

分享:

    相关文档

    相关产品

close