创建集群
功能介绍
该接口用于创建集群。
集群必须要运行在VPC之内,创建集群前,您需要先创建VPC,并获取VPC和子网的id。
该接口为异步接口,创建集群需要10~15分钟。
调用方法
请参见如何调用API。
URI
POST /v1.0/{project_id}/clusters
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释: 项目ID。获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
cluster |
是 |
CreateClusterInfo object |
参数解释: 集群对象。 取值范围: 非空对象。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
node_type |
是 |
String |
参数解释: 节点规格ID,需要通过查询规格接口获取,对应的是接口响应的id字段。 约束限制: 不涉及。 取值范围: 必须是查询规格信息接口返回的规格ID。 默认取值: 不涉及。 |
number_of_node |
是 |
Integer |
参数解释: 节点数量。 约束限制: 不涉及。 取值范围: 集群模式取值范围为3~256,实时数仓(单机模式)取值为1。 默认取值: 不涉及。 |
subnet_id |
是 |
String |
参数解释: 指定子网ID,用于集群网络配置。 约束限制: 不涉及。 取值范围: 必须是虚拟私有云ID下的某个子网。 默认取值: 不涉及。 |
security_group_id |
是 |
String |
参数解释: 指定安全组ID,用于集群网络配置。 约束限制: 不涉及。 取值范围: 参数非空时必须是有效的安全组ID。参数为空时将自动创建安全组。 默认取值: null |
vpc_id |
是 |
String |
参数解释: 指定虚拟私有云ID,用于集群网络配置。 约束限制: 不涉及。 取值范围: 必须是有效的虚拟私有云ID。 默认取值: 不涉及。 |
availability_zone |
否 |
String |
参数解释: 配置集群可用区。 约束限制: 不涉及。 取值范围: 必须是当前局点下状态有效且当前用户可见的可用区编码。 默认取值: 查询可用区时第一个可用的可用区编码。 |
port |
否 |
Integer |
参数解释: 集群数据库端口。 约束限制: 不涉及。 取值范围: 8000~30000 默认取值: 8000 |
name |
是 |
String |
参数解释: 集群名称。 约束限制: 要求唯一性,必须以字母开头并只包含字母、数字、中划线或下划线,长度为4~64个字符。 取值范围: 4~64个字符。 默认取值: 8000 |
user_name |
是 |
String |
参数解释: DWS集群管理员用户名。 约束限制: 取值范围: 1~63个字符。 默认取值: dbadmin |
user_pwd |
是 |
String |
参数解释: DWS集群管理员密码。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 |
public_ip |
否 |
PublicIp object |
参数解释: 公网IP地址,如果未指定,则默认不使用公网连接。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: null |
number_of_cn |
否 |
Integer |
参数解释: CN部署量。 约束限制: 不涉及。 取值范围: 2~集群节点数,最大值为20。 默认取值: 默认值为3。 |
enterprise_project_id |
否 |
String |
参数解释: 企业项目ID,对集群指定企业项目。如果未指定,则使用默认企业项目“default”的ID,即0。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 0 |
tags |
否 |
Tags object |
参数解释: 标签,给集群指定标签,默认不指定。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: null |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
public_bind_type |
否 |
String |
参数解释: 弹性IP绑定类型。 约束限制: 不涉及。 取值范围:
默认取值: null |
eip_id |
否 |
String |
参数解释: 弹性公网IP的id。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: null |
请求示例
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口8000,带公网IP,安全组ID,子网ID,虚拟私有云ID。
POST https://{Endpoint}/v1.0/89cd04f168b84af6be287f71730fdb4b/clusters
{
"cluster" : {
"node_type" : "dws.m1.xlarge.ultrahigh",
"number_of_node" : 3,
"subnet_id" : "374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
"security_group_id" : "dc3ec145-9029-4b39-b5a3-ace5a01f772b",
"vpc_id" : "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
"availability_zone" : "az1.dc1",
"port" : 8000,
"name" : "dws-1",
"user_name" : "dbadmin",
"user_pwd" : "Passw0rd!",
"public_ip" : {
"public_bind_type" : "auto_assign",
"eip_id" : ""
},
"enterprise_project_id" : "aca4e50a-266f-4786-827c-f8d6cc3fbada"
}
}
响应示例
状态码:200
创建集群请求下发成功。
{
"cluster" : {
"id" : "7d85f602-a948-4a30-afd4-e84f47471c15"
}
}
SDK代码示例
SDK代码示例如下。
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口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 |
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.*;
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);
DwsClient client = DwsClient.newBuilder()
.withCredential(auth)
.withRegion(DwsRegion.valueOf("<YOUR REGION>"))
.build();
CreateClusterRequest request = new CreateClusterRequest();
CreateClusterRequestBody body = new CreateClusterRequestBody();
PublicIp publicIpCluster = new PublicIp();
publicIpCluster.withPublicBindType("auto_assign")
.withEipId("");
CreateClusterInfo clusterbody = new CreateClusterInfo();
clusterbody.withNodeType("dws.m1.xlarge.ultrahigh")
.withNumberOfNode(3)
.withSubnetId("374eca02-cfc4-4de7-8ab5-dbebf7d9a720")
.withSecurityGroupId("dc3ec145-9029-4b39-b5a3-ace5a01f772b")
.withVpcId("85b20d7e-9eb7-4b2a-98f3-3c8843ea3574")
.withAvailabilityZone("az1.dc1")
.withPort(8000)
.withName("dws-1")
.withUserName("dbadmin")
.withUserPwd("Passw0rd!")
.withPublicIp(publicIpCluster)
.withEnterpriseProjectId("aca4e50a-266f-4786-827c-f8d6cc3fbada");
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());
}
}
}
|
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口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 |
# 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 = CreateClusterRequest()
publicIpCluster = PublicIp(
public_bind_type="auto_assign",
eip_id=""
)
clusterbody = CreateClusterInfo(
node_type="dws.m1.xlarge.ultrahigh",
number_of_node=3,
subnet_id="374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
security_group_id="dc3ec145-9029-4b39-b5a3-ace5a01f772b",
vpc_id="85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
availability_zone="az1.dc1",
port=8000,
name="dws-1",
user_name="dbadmin",
user_pwd="Passw0rd!",
public_ip=publicIpCluster,
enterprise_project_id="aca4e50a-266f-4786-827c-f8d6cc3fbada"
)
request.body = CreateClusterRequestBody(
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)
|
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口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 |
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.CreateClusterRequest{}
publicBindTypePublicIp:= "auto_assign"
eipIdPublicIp:= ""
publicIpCluster := &model.PublicIp{
PublicBindType: &publicBindTypePublicIp,
EipId: &eipIdPublicIp,
}
availabilityZoneCluster:= "az1.dc1"
portCluster:= int32(8000)
enterpriseProjectIdCluster:= "aca4e50a-266f-4786-827c-f8d6cc3fbada"
clusterbody := &model.CreateClusterInfo{
NodeType: "dws.m1.xlarge.ultrahigh",
NumberOfNode: int32(3),
SubnetId: "374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
SecurityGroupId: "dc3ec145-9029-4b39-b5a3-ace5a01f772b",
VpcId: "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
AvailabilityZone: &availabilityZoneCluster,
Port: &portCluster,
Name: "dws-1",
UserName: "dbadmin",
UserPwd: "Passw0rd!",
PublicIp: publicIpCluster,
EnterpriseProjectId: &enterpriseProjectIdCluster,
}
request.Body = &model.CreateClusterRequestBody{
Cluster: clusterbody,
}
response, err := client.CreateCluster(request)
if err == nil {
fmt.Printf("%+v\n", response)
} else {
fmt.Println(err)
}
}
|
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口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 |
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.*;
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);
DwsClient client = DwsClient.newBuilder()
.withCredential(auth)
.withRegion(DwsRegion.valueOf("<YOUR REGION>"))
.build();
CreateClusterRequest request = new CreateClusterRequest();
CreateClusterRequestBody body = new CreateClusterRequestBody();
PublicIp publicIpCluster = new PublicIp();
publicIpCluster.withPublicBindType("auto_assign")
.withEipId("");
CreateClusterInfo clusterbody = new CreateClusterInfo();
clusterbody.withNodeType("dws.m1.xlarge.ultrahigh")
.withNumberOfNode(3)
.withSubnetId("374eca02-cfc4-4de7-8ab5-dbebf7d9a720")
.withSecurityGroupId("dc3ec145-9029-4b39-b5a3-ace5a01f772b")
.withVpcId("85b20d7e-9eb7-4b2a-98f3-3c8843ea3574")
.withAvailabilityZone("az1.dc1")
.withPort(8000)
.withName("dws-1")
.withUserName("dbadmin")
.withUserPwd("Passw0rd!")
.withPublicIp(publicIpCluster)
.withEnterpriseProjectId("aca4e50a-266f-4786-827c-f8d6cc3fbada");
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());
}
}
}
|
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口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 |
# 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 = CreateClusterRequest()
publicIpCluster = PublicIp(
public_bind_type="auto_assign",
eip_id=""
)
clusterbody = CreateClusterInfo(
node_type="dws.m1.xlarge.ultrahigh",
number_of_node=3,
subnet_id="374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
security_group_id="dc3ec145-9029-4b39-b5a3-ace5a01f772b",
vpc_id="85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
availability_zone="az1.dc1",
port=8000,
name="dws-1",
user_name="dbadmin",
user_pwd="Passw0rd!",
public_ip=publicIpCluster,
enterprise_project_id="aca4e50a-266f-4786-827c-f8d6cc3fbada"
)
request.body = CreateClusterRequestBody(
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)
|
创建DWS集群,可用区为az1.dc1,节点规格为dws.m1.xlarge.ultrahigh,3节点,数据库端口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 |
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.CreateClusterRequest{}
publicBindTypePublicIp:= "auto_assign"
eipIdPublicIp:= ""
publicIpCluster := &model.PublicIp{
PublicBindType: &publicBindTypePublicIp,
EipId: &eipIdPublicIp,
}
availabilityZoneCluster:= "az1.dc1"
portCluster:= int32(8000)
enterpriseProjectIdCluster:= "aca4e50a-266f-4786-827c-f8d6cc3fbada"
clusterbody := &model.CreateClusterInfo{
NodeType: "dws.m1.xlarge.ultrahigh",
NumberOfNode: int32(3),
SubnetId: "374eca02-cfc4-4de7-8ab5-dbebf7d9a720",
SecurityGroupId: "dc3ec145-9029-4b39-b5a3-ace5a01f772b",
VpcId: "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574",
AvailabilityZone: &availabilityZoneCluster,
Port: &portCluster,
Name: "dws-1",
UserName: "dbadmin",
UserPwd: "Passw0rd!",
PublicIp: publicIpCluster,
EnterpriseProjectId: &enterpriseProjectIdCluster,
}
request.Body = &model.CreateClusterRequestBody{
Cluster: clusterbody,
}
response, err := client.CreateCluster(request)
if err == nil {
fmt.Printf("%+v\n", response)
} else {
fmt.Println(err)
}
}
|
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
创建集群请求下发成功。 |
400 |
请求错误。 |
401 |
鉴权失败。 |
403 |
没有操作权限。 |
500 |
服务内部错误。 |
503 |
服务不可用。 |