Creating a DCS Instance¶
Function¶
This API is used to create a DCS instance which is billed in pay-per-use mode.
URI¶
POST /v2/{project_id}/instances
Parameter | Mandatory | Type | Description |
---|---|---|---|
project_id | Yes | String | Project ID. For details, see Obtaining a Project ID. |
Request Parameters¶
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | Yes | String | Instance name. An instance name can contain letters, digits, underscores (_), and hyphens (-) and must start with a letter or digit. When you create only one instance at a time, the value of this parameter can contain 4 to 64 characters. When you create multiple instances at a time, the value of this parameter can contain 4 to 56 characters. The instances are named in the format of custom name |
engine | Yes | String | Cache engine: Redis. |
engine_version | No | String | Cache version. If the cache engine is Redis, this parameter is mandatory. The version can be 4.0/5.0/6.0/7.0. |
capacity | Yes | Float | Cache capacity (GB).
|
spec_code | Yes | String | Product flavor. The query method is as follows:
|
az_codes | Yes | Array of strings | Code of the AZ where the cache node resides and which has available resources. For details, see Querying AZs. Check whether the desired AZ has available resources. Master/Standby, read/write splitting, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment. You can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate multiple AZs. For details, see the example request. |
vpc_id | Yes | String | VPC ID. To obtain it, do as follows:
|
subnet_id | Yes | String | Network ID of the subnet. To obtain it, do as follows:
|
security_group_id | No | String | Security group to which the instance belongs. DCS Redis 4.0 and later instances do not support security groups but whitelists. You can obtain it in either of the following ways:
|
publicip_id | No | String | ID of the EIP bound to the DCS Redis instance. This parameter is reserved. Retain the default value. |
enterprise_project_id | No | String | Enterprise project ID. |
enterprise_project_name | No | String | Enterprise project name. |
description | No | String | Instance description. The description can contain a maximum of 1024 characters. The backslash () and quotation mark (") are special characters for JSON messages. When using these characters in a parameter value, add the escape character () before the characters, for example, \\ and \". |
enable_ssl | No | Boolean | This parameter is reserved. Retain the default value. |
private_ip | No | String | IP address that is specified for a DCS instance. |
instance_num | No | Integer | Number of instances to be created in batches. This parameter is available for DCS Redis instances. Default value: 1. Value range: 1 to 100 |
maintain_begin | No | String | UTC time when the maintenance time window starts. The format is HH:mm:ss.
|
maintain_end | No | String | UTC time when the maintenance time window ends. The format is HH:mm:ss.
|
password | No | String | Password of a DCS instance. When no_password_access is set to false or not specified, the request must contain the password parameter. The password of a DCS Redis instance must meet the following complexity requirements:
|
no_password_access | No | Boolean | Whether the instance can be accessed without a password.
|
bss_param | No | BssParam object | Parameter related to the billing mode. If this parameter is left blank, the default billing mode is pay-per-use. Other billing modes are not supported. |
instance_backup_policy | No | BackupPolicy object | Backup policy. This parameter is supported when the instance type is master/standby or cluster. |
tags | No | Array of ResourceTag objects | Instance tag key and value. |
access_user | No | String | If the cache engine is Redis, leave this parameter empty. |
enable_publicip | No | Boolean | This parameter is reserved. Retain the default value. |
port | No | Integer | Port customization. If this parameter is not sent or is left empty when you create a Redis 4.0 or later instance, the default port 6379 will be used. To customize a port, specify a port number in the range from 1 to 65535. |
rename_commands | No | Object | Critical commands can be renamed. If this parameter is not sent or is left empty when you create a Redis 4.0 or later instance, no critical command will be renamed. Currently, only COMMAND, KEYS, FLUSHDB, FLUSHALL, SCAN, HSCAN, SSCAN, ZSCAN, and HGETALL commands can be renamed. |
template_id | No | String | Parameter template ID. The default template is used when no ID is specified. To specify a custom parameter template, obtain the template ID by referring to Viewing Parameter Templates. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
is_auto_renew | No | String | This parameter is currently not used. |
charging_mode | Yes | String | Billing mode. The default value is postPaid, indicating pay-per-use. |
is_auto_pay | No | String | This parameter is currently not used. |
period_type | No | String | This parameter is currently not used. |
period_num | No | Integer | This parameter is currently not used. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
backup_type | Yes | String | Backup type.
|
save_days | No | Integer | This parameter is mandatory when backup_type is set to auto. Retention period, in days. The value ranges from 1 to 7. |
periodical_backup_plan | No | BackupPlan object | Backup schedule. This parameter is mandatory when backup_type is set to auto. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
timezone_offset | No | String | Time zone in which backup is performed. Range: GMT -12:00 to GMT +12:00. If this parameter is left blank, the current time zone of the DCS-Server VM is used by default. |
backup_at | Yes | Array of integers | Day in a week on which backup starts. The value ranges from 1 to 7, where 1 indicates Monday, and 7 indicates Sunday. |
period_type | Yes | String | Interval at which backup is performed, which supports only weekly currently. |
begin_at | Yes | String | Time at which backup starts. 00:00-01:00 indicates that the backup starts at 00:00. The value must be on the hour. The backup interval is 1 hour. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
key | Yes | String | Tag key.
|
value | No | String | Tag value.
|
Response Parameters¶
Status code: 200
Parameter | Type | Description |
---|---|---|
instances | Array of Instances objects | DCS instance ID and name. If multiple DCS instances are created at a time, multiple DCS instance IDs and names will be returned. |
Parameter | Type | Description |
---|---|---|
instance_id | String | DCS instance ID. |
instance_name | String | DCS instance name. |
Status code: 400
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. |
error_code | String | Error code. |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. |
Status code: 401
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. |
error_code | String | Error code. |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. |
Status code: 403
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. |
error_code | String | Error code. |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. |
Status code: 404
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. |
error_code | String | Error code. |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. |
Status code: 500
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. |
error_code | String | Error code. |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. |
Example Requests¶
Creating a DCS Redis instance
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", "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" }
Creating a pay-per-use, master/standby DCS Redis instance with a customized port, renamed commands, and cross-AZ deployment
{ "enterprise_project_name" : "default", "vpc_id" : "c5cd009b-9ba9-41f2-9a26-2b8c3f3ffd39", "description" : "Test", "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" } }
Example Responses¶
Status code: 200
The DCS instance creation task is submitted successfully.
If the instance status is RUNNING, the DCS instance has been successfully created.
Example 1
{ "instances" : [ { "instance_id" : "3c49fd6b-fc7c-419e-9644-b6cce008653f", "instance_name" : "dcs-test005" } ] }
Example 2
{ "instances" : [ { "instance_id" : "77284d69-cd51-4bf1-aa30-2e60f055800c", "instance_name" : "dcs-APITest1" } ] }
Status code: 400
Invalid request.
{
"error_code" : "DCS.1004",
"error_msg" : "Project ID does not match the token."
}
Status code: 401
Invalid authentication information.
{
"error_code" : "DCS.1001",
"error_msg" : "Invalid token."
}
Status code: 403
The request is rejected.
{
"error_code" : "DCS.2003",
"error_msg" : "This role does not have the permission to perform this operation."
}
Status code: 404
The requested resource is not found.
{
"error_code" : "DCS.4001",
"error_msg" : "The requested URL does not exist."
}
Status code: 500
Internal service error.
{
"error_code" : "DCS.5000",
"error_msg" : "Internal service error."
}
Status Codes¶
Status Code | Description |
---|---|
200 | The DCS instance creation task is submitted successfully. If the instance status is RUNNING, the DCS instance has been successfully created. |
400 | Invalid request. |
401 | Invalid authentication information. |
403 | The request is rejected. |
404 | The requested resource is not found. |
500 | Internal service error. |
Error Codes¶
See Error Codes.