Creating a Cluster (Discarded)
Function
This API can only be used to create clusters that contain a single type of nodes. To create clusters that contain multiple types of nodes (ess, ess-cold, ess-client, and ess-master), use the API for Creating a Cluster v2.
Calling Method
For details, see Calling APIs.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
css:cluster:create
Write
cluster *
-
-
- ecs:cloudServerFlavors:get
- evs:types:get
- vpc:vpcs:list
- vpc:securityGroups:list
- vpc:securityGroups:get
- vpc:subnets:list
- vpc:subnets:get
- vpc:ports:create
- vpc:ports:update
- vpc:ports:delete
- vpc:ports:get
- sfsturbo:shares:getAllShares
- kms:cmk:listGrants
- kms:cmk:createGrant
- kms:cmk:list
- kms:cmk:get
- css:cluster:getAgencies
- iam:agencies:listAgencies
- iam:permissions:listRolesForAgency
- iam:permissions:listRolesForAgencyOnProject
- iam:agencies:pass
-
URI
POST /v1.0/{project_id}/clusters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| project_id | Yes | String | Definition: Project ID. For details about how to obtain the project ID and name, see Obtaining the Project ID and Name. Constraints: N/A Value range: Project ID of the account. Default value: N/A |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| cluster | Yes | CreateClusterBody object | Parameter description: Cluster object. Constraints: N/A Options: N/A Default value: N/A |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| instance | Yes | CreateClusterInstanceBody object | Parameter description: Array of Buffer instances, whose memory is to be shared. Constraints: N/A Options: N/A Default value: N/A |
| datastore | Yes | CreateClusterDatastoreBody object | Definition: Search engine. Constraints: N/A Value range: N/A Default value: N/A |
| name | Yes | String | Definition: Cluster name. Constraints: N/A Value range: It can contain 4 to 32 characters. Only digits, letters, hyphens (-), and underscores (_) are allowed. The value must start with a letter. Default value: N/A |
| desc | No | String | Definition: Cluster description. Constraints: Enter a maximum of 128 characters. Value range: The value can contain digits, letters, periods (.), hyphens (-), underscores (_), and other special characters. Default value: N/A |
| instanceNum | Yes | Integer | Definition: Number of cluster instances. Constraints: N/A Value range: 1–32. Default value: N/A |
| backupStrategy | No | Parameter description: Automatic snapshot creation policy, which is disabled by default. The automatic snapshot creation policy is enabled only when backupStrategy is not left blank. Constraints: N/A Options: N/A Default value: N/A | |
| httpsEnable | No | Boolean | Definition: Whether communication is encrypted on the cluster. The value can be true or false. By default, communication encryption is disabled. When httpsEnable is set to true, authorityEnable must be set to true. Constraints: Only Elasticsearch 6.5.4 security-mode clusters and later support this parameter. HTTPS access can be disabled only for OpenSearch 1.3.6 and 2.19.0 security-mode clusters. For other versions, HTTPS access is forcibly enabled and cannot be disabled. Value range: Default value: false |
| authorityEnable | No | Boolean | Definition: Whether to enable authentication. Available values include true and false. Authentication is disabled by default. Constraints: Only Elasticsearch 6.5.4 security-mode clusters and later support this parameter. Value range: Default value: false |
| adminPwd | No | String | Parameter description: Password of the cluster user admin in security mode. This parameter is mandatory only when authorityEnable is set to true. Weak password verification is required for a security cluster. You are advised to set a strong password. Constraints: The administrator password must meet the following requirements:
Options: See Constraints. Default value: N/A |
| enterprise_project_id | No | String | Parameter description: Enterprise project ID. When creating a cluster, associate the enterprise project ID with the cluster. The value can contain a maximum of 36 characters. It is string 0 or in UUID format with hyphens (-). Value 0 indicates the default enterprise project. Constraints: N/A Options: N/A Default value: N/A |
| tags | No | Array of CreateClusterTagsBody objects | Parameter description: Cluster tags. Constraints: N/A Options: N/A Default value: N/A |
| payInfo | No | payInfoBody object | Parameter description: Parameters used for purchasing a yearly/monthly cluster. Constraints: N/A Options: N/A Default value: N/A |
| ipv6_enable | No | Boolean | Definition: Whether to enable automatic IPv6 address assignment for the cluster. The default value is false. Constraints: N/A Value range: N/A Default value: false |
| diskEncryption | No | diskEncryptionInfo object | Parameter description: Disk encryption information. Constraints: N/A Options: N/A Default value: N/A |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| flavorRef | Yes | String | Parameter description: Instance flavor name. For details about the current instance flavor, see the name attribute in Obtaining the Instance Specifications List. Constraints: N/A Options: N/A Default value: N/A |
| volume | Yes | Parameter description: Volume information. You do not need to set this parameter when flavorRef is set to a local disk flavor. Currently, the following local disk flavors are supported: Constraints: N/A Options: N/A Default value: N/A | |
| nics | Yes | Parameter description: Subnet information. Constraints: N/A Options: N/A Default value: N/A | |
| availability_zone | Yes | String | Definition The availability zone (AZ) where the nodes are located. Specify the AZ name. Constraints When specifying the AZs of nodes, separate zone names with commas (,). For example, for general AZs, if multiple AZs are selected, availability_zone should be set to region-1a,region-1b,region-1c. Range N/A Default Value availability_zone is empty by default, which indicates that a single AZ is used. NOTE: When selecting multiple AZs, do not enter duplicate zone names, and ensure that the number of nodes is greater than or equal to the number of AZs. When selecting two AZs, each AZ must contain at least two data nodes (ess) or cold data nodes (ess-cold). If the number of nodes is a multiple of the number of AZs, the nodes are evenly distributed across the AZs. If the number of nodes is not a multiple of the number of AZs, the absolute difference in the number of nodes among AZs must not exceed 1. For AZ names, see Regions and Endpoints in "Before You Start". |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| volume_type | Yes | String | Parameter description: Volume type. Constraints: N/A Options: Default value: N/A |
| size | Yes | Integer | Definition: Disk size. Constraints: The value must be greater than 0 and a common multiple of 4 and 10, in GB. Value range: You can obtain the disk size from the diskrange attribute in Obtaining the Instance Specifications List. Default value:
NOTE: For ess and ess-cold nodes, 100 GB or a larger value is recommended. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| vpcId | Yes | String | Parameter description: VPC ID, which is used for configuring cluster network. Constraints: N/A Options: N/A Default value: N/A |
| netId | Yes | String | Parameter description: Subnet ID (network ID). Constraints: N/A Options: N/A Default value: N/A |
| securityGroupId | Yes | String | Parameter description: Security group ID Constraints: N/A Options: N/A Default value: N/A |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| version | Yes | String | Parameter description: Elasticsearch/Logstash engine version. For details, see the supported versions in Before You Start. Constraints: N/A Options: N/A Default value: N/A |
| type | Yes | String | Definition The engine type of the cluster to be created. Constraints N/A Range - serverless-opensearch: Serverless cluster. Default Value N/A |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| key | Yes | String | Definition: Tag key. Constraints: N/A Value range: The value can contain 1 to 36 characters. Only digits, letters, hyphens (-), and underscores (_) are allowed. Default value: N/A |
| value | Yes | String | Definition: Tag value. Constraints: N/A Value range: Default value: N/A |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| systemEncrypted | No | String | Whether to enable disk encryption. The value can be 0 or 1. The default value is 0. 0: Disable disk encryption. 1: Enable disk encryption. |
| systemCmkid | No | String | KMS key ID. This parameter is valid only when systemEncrypted is set to 1. |
Response Parameters
Status code: 200
| Parameter | Type | Description |
|---|---|---|
| cluster | CreateClusterClusterResponse object | Parameter description: Cluster object. For a pay-per-use cluster, only the cluster parameter is returned. Options: N/A |
| orderId | String | Parameter description: Order ID. This parameter is returned only when a yearly/monthly cluster is created. Options: N/A |
Example Requests
-
Example request for creating a yearly/monthly cluster.
POST https://{Endpoint}/v1.0/{project_id}/clusters { "cluster" : { "instance" : { "flavorRef" : "ess.spec-4u16g", "volume" : { "volume_type" : "COMMON", "size" : 120 }, "nics" : { "vpcId" : "{VPC ID}", "netId" : "{NET ID}", "securityGroupId" : "{Security group ID}" }, "availability_zone" : "{AZ CODE}" }, "datastore" : { "version" : "{cluster-version}", "type" : "elasticsearch" }, "name" : "cluster-name", "desc" : "Cluster testing", "instanceNum" : 3, "backupStrategy" : { "period" : "16:00 GMT+08:00", "prefix" : "snapshot", "keepday" : 7, "frequency" : "DAY", "bucket" : "css-obs-backup", "basePath" : "css_repository/obs-path", "agency" : "css_obs_agency", "maxSnapshotBytesPerSeconds" : 40, "maxRestoreBytesPerSeconds" : 40 }, "httpsEnable" : true, "authorityEnable" : true, "adminPwd" : "{password}", "enterprise_project_id" : "0", "tags" : [ { "key" : "k1", "value" : "v1" }, { "key" : "k2", "value" : "v2" } ], "payInfo" : { "payModel" : 2, "period" : 1, "isAutoRenew" : 1, "isAutoPay" : 1 } } } -
Example request for creating a pay-per-use cluster.
POST https://{Endpoint}/v1.0/{project_id}/clusters { "cluster" : { "instance" : { "flavorRef" : "ess.spec-4u16g", "volume" : { "volume_type" : "COMMON", "size" : 120 }, "nics" : { "vpcId" : "{VPC ID}", "netId" : "{NET ID}", "securityGroupId" : "{Security group ID}" }, "availability_zone" : "{AZ CODE}" }, "datastore" : { "version" : "{cluster-version}", "type" : "elasticsearch" }, "name" : "cluster-name", "desc" : "Cluster testing", "instanceNum" : 3, "backupStrategy" : { "period" : "16:00 GMT+08:00", "prefix" : "snapshot", "keepday" : 7, "frequency" : "DAY", "bucket" : "css-obs-backup", "basePath" : "css_repository/obs-path", "agency" : "css_obs_agency", "maxSnapshotBytesPerSeconds" : 40, "maxRestoreBytesPerSeconds" : 40 }, "httpsEnable" : true, "authorityEnable" : true, "adminPwd" : "{password}", "enterprise_project_id" : "0", "tags" : [ { "key" : "k1", "value" : "v1" }, { "key" : "k2", "value" : "v2" } ] } }
Example Responses
Status code: 200
Request succeeded.
-
Example response for creating a pay-per-use cluster.
{ "cluster" : { "id" : "ef683016-871e-48bc-bf93-74a29d60d214", "name" : "ES-Test" } } -
Example response for creating a yearly/monthly cluster.
{ "cluster" : { "id" : "ef683016-871e-48bc-bf93-74a29d60d214", "name" : "ES-Test" }, "orderId" : "CS2208241141LY94J" }
SDK Sample Code
The SDK sample code is as follows.
Java
-
Example request for creating a yearly/monthly cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.css.v1.region.CssRegion; import com.huaweicloud.sdk.css.v1.*; import com.huaweicloud.sdk.css.v1.model.*; import java.util.List; import java.util.ArrayList; public class CreateClusterSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CssClient client = CssClient.newBuilder() .withCredential(auth) .withRegion(CssRegion.valueOf("<YOUR REGION>")) .build(); CreateClusterRequest request = new CreateClusterRequest(); CreateClusterReq body = new CreateClusterReq(); PayInfoBody payInfoCluster = new PayInfoBody(); payInfoCluster.withPayModel(2) .withPeriod(1) .withIsAutoRenew(1) .withIsAutoPay(1); List<CreateClusterTagsBody> listClusterTags = new ArrayList<>(); listClusterTags.add( new CreateClusterTagsBody() .withKey("k1") .withValue("v1") ); listClusterTags.add( new CreateClusterTagsBody() .withKey("k2") .withValue("v2") ); CreateClusterBackupStrategyBody backupStrategyCluster = new CreateClusterBackupStrategyBody(); backupStrategyCluster.withPeriod("16:00 GMT+08:00") .withPrefix("snapshot") .withKeepday(7) .withFrequency("DAY") .withBucket("css-obs-backup") .withBasePath("css_repository/obs-path") .withAgency("css_obs_agency") .withMaxSnapshotBytesPerSeconds("40") .withMaxRestoreBytesPerSeconds("40"); CreateClusterDatastoreBody datastoreCluster = new CreateClusterDatastoreBody(); datastoreCluster.withVersion("{cluster-version}") .withType("elasticsearch"); CreateClusterInstanceNicsBody nicsInstance = new CreateClusterInstanceNicsBody(); nicsInstance.withVpcId("{VPC ID}") .withNetId("{NET ID}") .withSecurityGroupId("{Security group ID}"); CreateClusterInstanceVolumeBody volumeInstance = new CreateClusterInstanceVolumeBody(); volumeInstance.withVolumeType("COMMON") .withSize(120); CreateClusterInstanceBody instanceCluster = new CreateClusterInstanceBody(); instanceCluster.withFlavorRef("ess.spec-4u16g") .withVolume(volumeInstance) .withNics(nicsInstance) .withAvailabilityZone("{AZ CODE}"); CreateClusterBody clusterbody = new CreateClusterBody(); clusterbody.withInstance(instanceCluster) .withDatastore(datastoreCluster) .withName("cluster-name") .withInstanceNum(3) .withBackupStrategy(backupStrategyCluster) .withHttpsEnable(true) .withAuthorityEnable(true) .withAdminPwd("{password}") .withEnterpriseProjectId("0") .withTags(listClusterTags) .withPayInfo(payInfoCluster); body.withCluster(clusterbody); request.withBody(body); try { CreateClusterResponse response = client.createCluster(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
-
Example request for creating a pay-per-use cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.css.v1.region.CssRegion; import com.huaweicloud.sdk.css.v1.*; import com.huaweicloud.sdk.css.v1.model.*; import java.util.List; import java.util.ArrayList; public class CreateClusterSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CssClient client = CssClient.newBuilder() .withCredential(auth) .withRegion(CssRegion.valueOf("<YOUR REGION>")) .build(); CreateClusterRequest request = new CreateClusterRequest(); CreateClusterReq body = new CreateClusterReq(); List<CreateClusterTagsBody> listClusterTags = new ArrayList<>(); listClusterTags.add( new CreateClusterTagsBody() .withKey("k1") .withValue("v1") ); listClusterTags.add( new CreateClusterTagsBody() .withKey("k2") .withValue("v2") ); CreateClusterBackupStrategyBody backupStrategyCluster = new CreateClusterBackupStrategyBody(); backupStrategyCluster.withPeriod("16:00 GMT+08:00") .withPrefix("snapshot") .withKeepday(7) .withFrequency("DAY") .withBucket("css-obs-backup") .withBasePath("css_repository/obs-path") .withAgency("css_obs_agency") .withMaxSnapshotBytesPerSeconds("40") .withMaxRestoreBytesPerSeconds("40"); CreateClusterDatastoreBody datastoreCluster = new CreateClusterDatastoreBody(); datastoreCluster.withVersion("{cluster-version}") .withType("elasticsearch"); CreateClusterInstanceNicsBody nicsInstance = new CreateClusterInstanceNicsBody(); nicsInstance.withVpcId("{VPC ID}") .withNetId("{NET ID}") .withSecurityGroupId("{Security group ID}"); CreateClusterInstanceVolumeBody volumeInstance = new CreateClusterInstanceVolumeBody(); volumeInstance.withVolumeType("COMMON") .withSize(120); CreateClusterInstanceBody instanceCluster = new CreateClusterInstanceBody(); instanceCluster.withFlavorRef("ess.spec-4u16g") .withVolume(volumeInstance) .withNics(nicsInstance) .withAvailabilityZone("{AZ CODE}"); CreateClusterBody clusterbody = new CreateClusterBody(); clusterbody.withInstance(instanceCluster) .withDatastore(datastoreCluster) .withName("cluster-name") .withInstanceNum(3) .withBackupStrategy(backupStrategyCluster) .withHttpsEnable(true) .withAuthorityEnable(true) .withAdminPwd("{password}") .withEnterpriseProjectId("0") .withTags(listClusterTags); body.withCluster(clusterbody); request.withBody(body); try { CreateClusterResponse response = client.createCluster(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
Python
-
Example request for creating a yearly/monthly cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcss.v1.region.css_region import CssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcss.v1 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CssClient.new_builder() \ .with_credentials(credentials) \ .with_region(CssRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateClusterRequest() payInfoCluster = PayInfoBody( pay_model=2, period=1, is_auto_renew=1, is_auto_pay=1 ) listTagsCluster = [ CreateClusterTagsBody( key="k1", value="v1" ), CreateClusterTagsBody( key="k2", value="v2" ) ] backupStrategyCluster = CreateClusterBackupStrategyBody( period="16:00 GMT+08:00", prefix="snapshot", keepday=7, frequency="DAY", bucket="css-obs-backup", base_path="css_repository/obs-path", agency="css_obs_agency", max_snapshot_bytes_per_seconds="40", max_restore_bytes_per_seconds="40" ) datastoreCluster = CreateClusterDatastoreBody( version="{cluster-version}", type="elasticsearch" ) nicsInstance = CreateClusterInstanceNicsBody( vpc_id="{VPC ID}", net_id="{NET ID}", security_group_id="{Security group ID}" ) volumeInstance = CreateClusterInstanceVolumeBody( volume_type="COMMON", size=120 ) instanceCluster = CreateClusterInstanceBody( flavor_ref="ess.spec-4u16g", volume=volumeInstance, nics=nicsInstance, availability_zone="{AZ CODE}" ) clusterbody = CreateClusterBody( instance=instanceCluster, datastore=datastoreCluster, name="cluster-name", instance_num=3, backup_strategy=backupStrategyCluster, https_enable=True, authority_enable=True, admin_pwd="{password}", enterprise_project_id="0", tags=listTagsCluster, pay_info=payInfoCluster ) request.body = CreateClusterReq( cluster=clusterbody ) response = client.create_cluster(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
Example request for creating a pay-per-use cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcss.v1.region.css_region import CssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcss.v1 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CssClient.new_builder() \ .with_credentials(credentials) \ .with_region(CssRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateClusterRequest() listTagsCluster = [ CreateClusterTagsBody( key="k1", value="v1" ), CreateClusterTagsBody( key="k2", value="v2" ) ] backupStrategyCluster = CreateClusterBackupStrategyBody( period="16:00 GMT+08:00", prefix="snapshot", keepday=7, frequency="DAY", bucket="css-obs-backup", base_path="css_repository/obs-path", agency="css_obs_agency", max_snapshot_bytes_per_seconds="40", max_restore_bytes_per_seconds="40" ) datastoreCluster = CreateClusterDatastoreBody( version="{cluster-version}", type="elasticsearch" ) nicsInstance = CreateClusterInstanceNicsBody( vpc_id="{VPC ID}", net_id="{NET ID}", security_group_id="{Security group ID}" ) volumeInstance = CreateClusterInstanceVolumeBody( volume_type="COMMON", size=120 ) instanceCluster = CreateClusterInstanceBody( flavor_ref="ess.spec-4u16g", volume=volumeInstance, nics=nicsInstance, availability_zone="{AZ CODE}" ) clusterbody = CreateClusterBody( instance=instanceCluster, datastore=datastoreCluster, name="cluster-name", instance_num=3, backup_strategy=backupStrategyCluster, https_enable=True, authority_enable=True, admin_pwd="{password}", enterprise_project_id="0", tags=listTagsCluster ) request.body = CreateClusterReq( cluster=clusterbody ) response = client.create_cluster(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
Go
-
Example request for creating a yearly/monthly cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := css.NewCssClient( css.CssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateClusterRequest{} isAutoRenewPayInfo:= int32(1) isAutoPayPayInfo:= int32(1) payInfoCluster := &model.PayInfoBody{ PayModel: int32(2), Period: int32(1), IsAutoRenew: &isAutoRenewPayInfo, IsAutoPay: &isAutoPayPayInfo, } var listTagsCluster = []model.CreateClusterTagsBody{ { Key: "k1", Value: "v1", }, { Key: "k2", Value: "v2", }, } frequencyBackupStrategy:= "DAY" bucketBackupStrategy:= "css-obs-backup" basePathBackupStrategy:= "css_repository/obs-path" agencyBackupStrategy:= "css_obs_agency" maxSnapshotBytesPerSecondsBackupStrategy:= "40" maxRestoreBytesPerSecondsBackupStrategy:= "40" backupStrategyCluster := &model.CreateClusterBackupStrategyBody{ Period: "16:00 GMT+08:00", Prefix: "snapshot", Keepday: int32(7), Frequency: &frequencyBackupStrategy, Bucket: &bucketBackupStrategy, BasePath: &basePathBackupStrategy, Agency: &agencyBackupStrategy, MaxSnapshotBytesPerSeconds: &maxSnapshotBytesPerSecondsBackupStrategy, MaxRestoreBytesPerSeconds: &maxRestoreBytesPerSecondsBackupStrategy, } datastoreCluster := &model.CreateClusterDatastoreBody{ Version: "{cluster-version}", Type: "elasticsearch", } nicsInstance := &model.CreateClusterInstanceNicsBody{ VpcId: "{VPC ID}", NetId: "{NET ID}", SecurityGroupId: "{Security group ID}", } volumeInstance := &model.CreateClusterInstanceVolumeBody{ VolumeType: "COMMON", Size: int32(120), } availabilityZoneInstance:= "{AZ CODE}" instanceCluster := &model.CreateClusterInstanceBody{ FlavorRef: "ess.spec-4u16g", Volume: volumeInstance, Nics: nicsInstance, AvailabilityZone: &availabilityZoneInstance, } httpsEnableCluster:= true authorityEnableCluster:= true adminPwdCluster:= "{password}" enterpriseProjectIdCluster:= "0" clusterbody := &model.CreateClusterBody{ Instance: instanceCluster, Datastore: datastoreCluster, Name: "cluster-name", InstanceNum: int32(3), BackupStrategy: backupStrategyCluster, HttpsEnable: &httpsEnableCluster, AuthorityEnable: &authorityEnableCluster, AdminPwd: &adminPwdCluster, EnterpriseProjectId: &enterpriseProjectIdCluster, Tags: &listTagsCluster, PayInfo: payInfoCluster, } request.Body = &model.CreateClusterReq{ Cluster: clusterbody, } response, err := client.CreateCluster(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
-
Example request for creating a pay-per-use cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := css.NewCssClient( css.CssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateClusterRequest{} var listTagsCluster = []model.CreateClusterTagsBody{ { Key: "k1", Value: "v1", }, { Key: "k2", Value: "v2", }, } frequencyBackupStrategy:= "DAY" bucketBackupStrategy:= "css-obs-backup" basePathBackupStrategy:= "css_repository/obs-path" agencyBackupStrategy:= "css_obs_agency" maxSnapshotBytesPerSecondsBackupStrategy:= "40" maxRestoreBytesPerSecondsBackupStrategy:= "40" backupStrategyCluster := &model.CreateClusterBackupStrategyBody{ Period: "16:00 GMT+08:00", Prefix: "snapshot", Keepday: int32(7), Frequency: &frequencyBackupStrategy, Bucket: &bucketBackupStrategy, BasePath: &basePathBackupStrategy, Agency: &agencyBackupStrategy, MaxSnapshotBytesPerSeconds: &maxSnapshotBytesPerSecondsBackupStrategy, MaxRestoreBytesPerSeconds: &maxRestoreBytesPerSecondsBackupStrategy, } datastoreCluster := &model.CreateClusterDatastoreBody{ Version: "{cluster-version}", Type: "elasticsearch", } nicsInstance := &model.CreateClusterInstanceNicsBody{ VpcId: "{VPC ID}", NetId: "{NET ID}", SecurityGroupId: "{Security group ID}", } volumeInstance := &model.CreateClusterInstanceVolumeBody{ VolumeType: "COMMON", Size: int32(120), } availabilityZoneInstance:= "{AZ CODE}" instanceCluster := &model.CreateClusterInstanceBody{ FlavorRef: "ess.spec-4u16g", Volume: volumeInstance, Nics: nicsInstance, AvailabilityZone: &availabilityZoneInstance, } httpsEnableCluster:= true authorityEnableCluster:= true adminPwdCluster:= "{password}" enterpriseProjectIdCluster:= "0" clusterbody := &model.CreateClusterBody{ Instance: instanceCluster, Datastore: datastoreCluster, Name: "cluster-name", InstanceNum: int32(3), BackupStrategy: backupStrategyCluster, HttpsEnable: &httpsEnableCluster, AuthorityEnable: &authorityEnableCluster, AdminPwd: &adminPwdCluster, EnterpriseProjectId: &enterpriseProjectIdCluster, Tags: &listTagsCluster, } request.Body = &model.CreateClusterReq{ Cluster: clusterbody, } response, err := client.CreateCluster(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
More
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
| Status Code | Description |
|---|---|
| 200 | Request succeeded. |
| 400 | Invalid request. Modify the request before retry. |
| 409 | The request could not be completed due to a conflict with the current state of the resource. The resource that the client attempts to create already exists, or the update request fails to be processed because of a conflict. |
| 412 | The server did not meet one of the preconditions contained in the request. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot