接口
接口名称:createCluster
参数
参数 | 类型 | 是否必需 | 说明 |
clusterDescription | ClusterDescription | 是 | 构建集群的描述。 |
ClusterDescription 对象可通过 JSON 串初始化,具体参数请参阅 API 创建集群描述。
返回值
创建成功后返回一个CreateClusterResponse实例,可以通过
response.getClusterId()
获取创建的集群ID。
例子
下面是一个创建集群的例子,可执行的代码部分是一个简单的例子。注释掉的代码中是其他的参数的配置,您可以根据自己的需要打开相关的功能。关于各个参数具体配置信息请参考 API 创建集群描述。
Java 源码:
package demo;
import com.aliyuncs.batchcompute.main.v20151111.*;
import com.aliyuncs.batchcompute.model.v20151111.*;
import com.aliyuncs.batchcompute.pojo.v20151111.*;
import com.aliyuncs.exceptions.ClientException;
public class CreateCluster {
static String ACCESS_KEY_ID = "xxx"; //这里填写您的 AccessKeyId
static String ACCESS_KEY_SECRET = "xxx"; //这里填写您的 AccessKeySecret
static String REGION_ID = "cn-xxx"; //这里填写期望集群所在的 region
public static void main(String[] args) {
BatchCompute client = new BatchComputeClient(REGION_ID, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
try {
ClusterDescription clusterDescription = getClusterDesc();
CreateClusterResponse response = client.createCluster(clusterDescription);
System.out.println(response);
String clusterId = response.getClusterId();
//创建成功
System.out.println("Got cluster id:" + clusterId);
} catch (ClientException e) {
e.printStackTrace();
//创建失败
}
}
private static ClusterDescription getClusterDesc(){
ClusterDescription desc = new ClusterDescription();
desc.setName("cluster_test");
desc.setImageId("img-ubuntu");
desc.setDescription("demo");
//cluster 的其他属性可以根据业务需要进行设置
GroupDescription groupDesc = new GroupDescription();
groupDesc.setDesiredVMCount(1);
groupDesc.setInstanceType("ecs.s3.large");
groupDesc.setResourceType("OnDemand");
//groupDesc 的其他属性(如:竞价策略等)可以根据业务需要进行设置
desc.addGroup("group1", groupDesc);
return desc;
}
}
执行结果:
{
"Got cluster id": "cls-6kie8e833lnov8gg50k00i"
}
注意点
以下的各点都在 API 文档中有相关的详细说明。
1、集群中默认只支持1个组,受配额限制。
2、如果 Group 中有配置 ResourceType,优先使用 Group 中的 ResourceType
3、实例的实例类型与磁盘类型有一定的对应关系,请参考ECS的实例文档。
4、建议您使用 VPC 网络。您可以指定VpcId,如果不指定我们会自动给您创建。注意CidrBlock的格式。
5、Mount 的路径请注意格式。如果挂在NAS,必须使用VPC,并且VPC配置中的VpcId必须是跟NAS在同一个VpcId下。
6、挂载 OSS 文件的访问权限可以通过单独配置 Access Key Id / Access Key Secrect。
7、如果您需要关心集群实时状态,可以通过 Notification 来获取。
8、如果需要保证请求的幂等性,可以通过生成 Idempotent Token 来创建集群。