创建集群V2
功能介绍
该接口用于创建集群。
集群必须要运行在VPC之内,创建集群前,您需要先创建VPC,并获取VPC和子网的id。
该接口为异步接口,创建集群需要10~15分钟。
调用方法
请参见如何调用API。
URI
POST /v2/{project_id}/clusters
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释: 项目ID。获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
cluster |
否 |
V2CreateCluster object |
参数解释: V2接口创建集群请求体。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释: 集群名称,要求唯一性。 约束限制: 不涉及。 取值范围: 要求唯一性,必须以字母开头并只包含字母、数字、中划线或下划线,长度为4~64个字符。 默认取值: 不涉及。 |
flavor |
是 |
String |
参数解释: 集群规格编码。 约束限制: 不涉及。 取值范围: 请参见集群规格接口返回的规格编码。 默认取值: 不涉及。 |
num_cn |
否 |
Integer |
参数解释: 集群CN数量。 约束限制: 不涉及。 取值范围: 取值范围为2~集群节点数,最大值为20,默认值为3。 默认取值: 不涉及。 |
num_node |
是 |
Integer |
参数解释: 集群节点数量。 约束限制: 不涉及。 取值范围: 集群模式取值范围为3~256,实时数仓(单机模式)取值为1。 默认取值: 不涉及。 |
db_name |
是 |
String |
参数解释: 管理员用户名称。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 |
db_password |
是 |
String |
参数解释: 管理员用户密码。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 |
db_port |
是 |
Integer |
参数解释: 集群数据库端口。 约束限制: 不涉及。 取值范围: 8000~30000 默认取值: 8000 |
dss_pool_id |
否 |
String |
参数解释: 专属存储池ID,一般不需要填写。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: null |
availability_zones |
是 |
Array of strings |
参数解释: 可用区信息,创建3AZ集群时需传入3个不同可用区。 约束限制: 不涉及。 取值范围: 获取方法请参见查询可用区列表接口。 默认取值: 不涉及。 |
tags |
否 |
Array of Tags objects |
参数解释: 标签信息。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
vpc_id |
是 |
String |
参数解释: 指定虚拟私有云ID,用于集群网络配置。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
subnet_id |
是 |
String |
参数解释: 指定子网ID,用于集群网络配置。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
security_group_id |
否 |
String |
参数解释: 指定安全组ID,用于集群网络配置。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
public_ip |
否 |
PublicIp object |
参数解释: 公网IP地址,如果未指定,则默认不使用公网连接。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
datastore_version |
是 |
String |
参数解释: 集群版本。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
master_key_id |
否 |
String |
参数解释: KMS密钥ID。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
master_key_name |
否 |
String |
参数解释: KMS密钥名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
crypt_algorithm |
否 |
String |
参数解释: KMS加密算法。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
volume |
是 |
Volume object |
参数解释: 磁盘信息。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
enterprise_project_id |
否 |
String |
参数解释: 企业项目ID,对集群指定企业项目。如果未指定,则使用默认企业项目“default”的ID,即0。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 0 |
ipv6_enable |
否 |
Boolean |
参数解释: 指定网络协议类型,表明是否支持IPv6,默认不使用IPv6。使用ipv6时必须所选择的子网也支持ipv6。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
参数解释: 标签的键。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
value |
是 |
String |
参数解释: 标签的值。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
请求示例
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
POST https://{Endpoint}/v2/89cd04f168b84af6be287f71730fdb4b/clusters
{
"cluster" : {
"flavor" : "dws.m1.xlarge.ultrahigh",
"num_node" : 3,
"subnet_id" : "374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
"security_group_id" : "dc3ec145-9029-4b39-b5a3-ace5a01f772b",
"vpc_id" : "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
"db_port" : 8000,
"datastore_version" : "8.2.1",
"availability_zones" : [ "az1", "az2" ],
"name" : "dws-1",
"num_cn" : 3,
"db_name" : "dbadmin",
"db_password" : "Passw0rd!",
"public_ip" : {
"public_bind_type" : "auto_assign",
"eip_id" : ""
},
"volume" : {
"volume" : "SSD",
"capacity" : 100
},
"enterprise_project_id" : "aca4e50a-266f-4786-827c-f8d6cc3fbada"
}
}
响应示例
状态码:200
创建集群请求发起成功。
{
"cluster" : {
"id" : "7d85f602-a948-4a30-afd4-e84f47471c15"
}
}
SDK代码示例
SDK代码示例如下。
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
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 |
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.dws.v2.region.DwsRegion;
import com.huaweicloud.sdk.dws.v2.*;
import com.huaweicloud.sdk.dws.v2.model.*;
import java.util.List;
import java.util.ArrayList;
public class CreateClusterV2Solution {
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);
DwsClient client = DwsClient.newBuilder()
.withCredential(auth)
.withRegion(DwsRegion.valueOf("<YOUR REGION>"))
.build();
CreateClusterV2Request request = new CreateClusterV2Request();
V2CreateClusterReq body = new V2CreateClusterReq();
Volume volumeCluster = new Volume();
volumeCluster.withVolume("SSD")
.withCapacity(100);
PublicIp publicIpCluster = new PublicIp();
publicIpCluster.withPublicBindType("auto_assign")
.withEipId("");
List<String> listClusterAvailabilityZones = new ArrayList<>();
listClusterAvailabilityZones.add("az1");
listClusterAvailabilityZones.add("az2");
V2CreateCluster clusterbody = new V2CreateCluster();
clusterbody.withName("dws-1")
.withFlavor("dws.m1.xlarge.ultrahigh")
.withNumCn(3)
.withNumNode(3)
.withDbName("dbadmin")
.withDbPassword("Passw0rd!")
.withDbPort(8000)
.withAvailabilityZones(listClusterAvailabilityZones)
.withVpcId("85b20d7e-9eb7-4b2a-98f3-3c8843ea3574")
.withSubnetId("374eca02-cfc4-4de7-8ab5-dbebf7d9a720")
.withSecurityGroupId("dc3ec145-9029-4b39-b5a3-ace5a01f772b")
.withPublicIp(publicIpCluster)
.withDatastoreVersion("8.2.1")
.withVolume(volumeCluster)
.withEnterpriseProjectId("aca4e50a-266f-4786-827c-f8d6cc3fbada");
body.withCluster(clusterbody);
request.withBody(body);
try {
CreateClusterV2Response response = client.createClusterV2(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());
}
}
}
|
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
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 |
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkdws.v2.region.dws_region import DwsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkdws.v2 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 = DwsClient.new_builder() \
.with_credentials(credentials) \
.with_region(DwsRegion.value_of("<YOUR REGION>")) \
.build()
try:
request = CreateClusterV2Request()
volumeCluster = Volume(
volume="SSD",
capacity=100
)
publicIpCluster = PublicIp(
public_bind_type="auto_assign",
eip_id=""
)
listAvailabilityZonesCluster = [
"az1",
"az2"
]
clusterbody = V2CreateCluster(
name="dws-1",
flavor="dws.m1.xlarge.ultrahigh",
num_cn=3,
num_node=3,
db_name="dbadmin",
db_password="Passw0rd!",
db_port=8000,
availability_zones=listAvailabilityZonesCluster,
vpc_id="85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
subnet_id="374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
security_group_id="dc3ec145-9029-4b39-b5a3-ace5a01f772b",
public_ip=publicIpCluster,
datastore_version="8.2.1",
volume=volumeCluster,
enterprise_project_id="aca4e50a-266f-4786-827c-f8d6cc3fbada"
)
request.body = V2CreateClusterReq(
cluster=clusterbody
)
response = client.create_cluster_v2(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
|
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
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 |
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
dws "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/model"
region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/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 := dws.NewDwsClient(
dws.DwsClientBuilder().
WithRegion(region.ValueOf("<YOUR REGION>")).
WithCredential(auth).
Build())
request := &model.CreateClusterV2Request{}
capacityVolume:= int32(100)
volumeCluster := &model.Volume{
Volume: "SSD",
Capacity: &capacityVolume,
}
publicBindTypePublicIp:= "auto_assign"
eipIdPublicIp:= ""
publicIpCluster := &model.PublicIp{
PublicBindType: &publicBindTypePublicIp,
EipId: &eipIdPublicIp,
}
var listAvailabilityZonesCluster = []string{
"az1",
"az2",
}
numCnCluster:= int32(3)
securityGroupIdCluster:= "dc3ec145-9029-4b39-b5a3-ace5a01f772b"
enterpriseProjectIdCluster:= "aca4e50a-266f-4786-827c-f8d6cc3fbada"
clusterbody := &model.V2CreateCluster{
Name: "dws-1",
Flavor: "dws.m1.xlarge.ultrahigh",
NumCn: &numCnCluster,
NumNode: int32(3),
DbName: "dbadmin",
DbPassword: "Passw0rd!",
DbPort: int32(8000),
AvailabilityZones: listAvailabilityZonesCluster,
VpcId: "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
SubnetId: "374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
SecurityGroupId: &securityGroupIdCluster,
PublicIp: publicIpCluster,
DatastoreVersion: "8.2.1",
Volume: volumeCluster,
EnterpriseProjectId: &enterpriseProjectIdCluster,
}
request.Body = &model.V2CreateClusterReq{
Cluster: clusterbody,
}
response, err := client.CreateClusterV2(request)
if err == nil {
fmt.Printf("%+v\n", response)
} else {
fmt.Println(err)
}
}
|
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
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 |
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.dws.v2.region.DwsRegion;
import com.huaweicloud.sdk.dws.v2.*;
import com.huaweicloud.sdk.dws.v2.model.*;
import java.util.List;
import java.util.ArrayList;
public class CreateClusterV2Solution {
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);
DwsClient client = DwsClient.newBuilder()
.withCredential(auth)
.withRegion(DwsRegion.valueOf("<YOUR REGION>"))
.build();
CreateClusterV2Request request = new CreateClusterV2Request();
V2CreateClusterReq body = new V2CreateClusterReq();
Volume volumeCluster = new Volume();
volumeCluster.withVolume("SSD")
.withCapacity(100);
PublicIp publicIpCluster = new PublicIp();
publicIpCluster.withPublicBindType("auto_assign")
.withEipId("");
List<String> listClusterAvailabilityZones = new ArrayList<>();
listClusterAvailabilityZones.add("az1");
listClusterAvailabilityZones.add("az2");
V2CreateCluster clusterbody = new V2CreateCluster();
clusterbody.withName("dws-1")
.withFlavor("dws.m1.xlarge.ultrahigh")
.withNumCn(3)
.withNumNode(3)
.withDbName("dbadmin")
.withDbPassword("Passw0rd!")
.withDbPort(8000)
.withAvailabilityZones(listClusterAvailabilityZones)
.withVpcId("85b20d7e-9eb7-4b2a-98f3-3c8843ea3574")
.withSubnetId("374eca02-cfc4-4de7-8ab5-dbebf7d9a720")
.withSecurityGroupId("dc3ec145-9029-4b39-b5a3-ace5a01f772b")
.withPublicIp(publicIpCluster)
.withDatastoreVersion("8.2.1")
.withVolume(volumeCluster)
.withEnterpriseProjectId("aca4e50a-266f-4786-827c-f8d6cc3fbada");
body.withCluster(clusterbody);
request.withBody(body);
try {
CreateClusterV2Response response = client.createClusterV2(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());
}
}
}
|
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
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 |
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkdws.v2.region.dws_region import DwsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkdws.v2 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 = DwsClient.new_builder() \
.with_credentials(credentials) \
.with_region(DwsRegion.value_of("<YOUR REGION>")) \
.build()
try:
request = CreateClusterV2Request()
volumeCluster = Volume(
volume="SSD",
capacity=100
)
publicIpCluster = PublicIp(
public_bind_type="auto_assign",
eip_id=""
)
listAvailabilityZonesCluster = [
"az1",
"az2"
]
clusterbody = V2CreateCluster(
name="dws-1",
flavor="dws.m1.xlarge.ultrahigh",
num_cn=3,
num_node=3,
db_name="dbadmin",
db_password="Passw0rd!",
db_port=8000,
availability_zones=listAvailabilityZonesCluster,
vpc_id="85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
subnet_id="374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
security_group_id="dc3ec145-9029-4b39-b5a3-ace5a01f772b",
public_ip=publicIpCluster,
datastore_version="8.2.1",
volume=volumeCluster,
enterprise_project_id="aca4e50a-266f-4786-827c-f8d6cc3fbada"
)
request.body = V2CreateClusterReq(
cluster=clusterbody
)
response = client.create_cluster_v2(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
|
创建多AZ DWS集群,集群版本为8.2.1,可用区是az1和az2,节点规格为dws.m1.xlarge.ultrahigh,3节点,SSD磁盘,容量为100GB,数据库端口为8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
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 |
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
dws "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/model"
region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/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 := dws.NewDwsClient(
dws.DwsClientBuilder().
WithRegion(region.ValueOf("<YOUR REGION>")).
WithCredential(auth).
Build())
request := &model.CreateClusterV2Request{}
capacityVolume:= int32(100)
volumeCluster := &model.Volume{
Volume: "SSD",
Capacity: &capacityVolume,
}
publicBindTypePublicIp:= "auto_assign"
eipIdPublicIp:= ""
publicIpCluster := &model.PublicIp{
PublicBindType: &publicBindTypePublicIp,
EipId: &eipIdPublicIp,
}
var listAvailabilityZonesCluster = []string{
"az1",
"az2",
}
numCnCluster:= int32(3)
securityGroupIdCluster:= "dc3ec145-9029-4b39-b5a3-ace5a01f772b"
enterpriseProjectIdCluster:= "aca4e50a-266f-4786-827c-f8d6cc3fbada"
clusterbody := &model.V2CreateCluster{
Name: "dws-1",
Flavor: "dws.m1.xlarge.ultrahigh",
NumCn: &numCnCluster,
NumNode: int32(3),
DbName: "dbadmin",
DbPassword: "Passw0rd!",
DbPort: int32(8000),
AvailabilityZones: listAvailabilityZonesCluster,
VpcId: "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
SubnetId: "374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
SecurityGroupId: &securityGroupIdCluster,
PublicIp: publicIpCluster,
DatastoreVersion: "8.2.1",
Volume: volumeCluster,
EnterpriseProjectId: &enterpriseProjectIdCluster,
}
request.Body = &model.V2CreateClusterReq{
Cluster: clusterbody,
}
response, err := client.CreateClusterV2(request)
if err == nil {
fmt.Printf("%+v\n", response)
} else {
fmt.Println(err)
}
}
|
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
创建集群请求发起成功。 |
400 |
请求错误。 |
401 |
鉴权失败。 |
403 |
没有操作权限。 |
500 |
服务内部错误。 |
503 |
服务不可用。 |