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 engine version. If the cache engine is Redis, this parameter is mandatory. The version can be 3.0/4.0/5.0/6.0. |
capacity | Yes | Float | Cache capacity (GB). For a single-node or master/standby DCS Redis 3.0 instance, the value can be 2, 4, 8, 16, 32, or 64. For a Proxy Cluster DCS Redis 3.0 instance, the value can be 64, 128, 256, 512, or 1024. For a single-node or master/standby DCS Redis 4.0 or 5.0 instance, the value can be 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, or 64. For a cluster instance, the value can be 4, 8, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, or 1024. |
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, 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. You can obtain it in either of the following ways:
|
subnet_id | Yes | String | Subnet network ID. You can obtain it in either of the following ways:
|
security_group_id | No | String | ID of the security group to which the instance belongs. This parameter is optional when engine is Redis and engine_version is 4.0, 5.0, or 6.0This parameter is mandatory when engine_version is 3.0. DCS Redis 4.0, 5.0, and 6.0 instances do not support security groups. They support only whitelist-based access control. 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. Default: false |
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. Note 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 manually specified for a DCS instance. This parameter is available for DCS Redis instances. |
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 Default: 1 |
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 | DCS instance authentication information. Note 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.
Default: false |
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 | Leave this parameter empty. |
enable_publicip | No | Boolean | This parameter is reserved. Retain the default value. Default: false |
port | No | Integer | Port customization. If this parameter is not sent or is left empty when you create a Redis 4.0, 5.0, or 6.0 instance, the default port 6379 will be used. To customize a port, specify a port number in the range from 1 to 65535. For a DCS Redis 3.0 instance, the port cannot be customized. Port 6379 will be used. |
rename_commands | No | Object | Critical command renaming. If this parameter is not sent or is left empty when you create a Redis 4.0, 5.0, or 6.0 instance, no critical command will be renamed. Currently, only COMMAND, KEYS, FLUSHDB, FLUSHALL, SCAN, HSCAN, SSCAN, ZSCAN, and HGETALL commands can be renamed. Redis 3.0 instances do not support renaming of high-risk commands. |
template_id | No | String | Parameter template ID. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
is_auto_renew | No | String | This parameter is currently not used. Default: false |
charging_mode | Yes | String | Billing mode. The default value is postPaid, indicating pay-per-use. Default: postPaid |
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. Maximum: 1024 |
error_code | String | Error code. Maximum: 9 |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. Maximum: 1024 |
Status code: 401
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. Maximum: 1024 |
error_code | String | Error code. Maximum: 9 |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. Maximum: 1024 |
Status code: 403
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. Maximum: 1024 |
error_code | String | Error code. Maximum: 9 |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. Maximum: 1024 |
Status code: 404
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. Maximum: 1024 |
error_code | String | Error code. Maximum: 9 |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. Maximum: 1024 |
Status code: 500
Parameter | Type | Description |
---|---|---|
error_msg | String | Error message. Maximum: 1024 |
error_code | String | Error code. Maximum: 9 |
error_ext_msg | String | Extended error information. This parameter is not used currently and is set to null. Maximum: 1024 |
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", "security_group_id" : "securityGroupId", "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", "security_group_id" : "d57fad27-e3e9-43b7-9498-0a698ab63b27", "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.
Note
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. Note 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.