使用API創(chuàng)建ECS集群
本文介紹如何使用EDAS提供的Java SDK調(diào)用API創(chuàng)建ECS集群。
前提條件
在創(chuàng)建ECS集群前,您必須提前完成以下準(zhǔn)備工作:
- 安裝EDAS的Java SDK。更多信息,請參見Java SDK接入指南。
確定創(chuàng)建ECS集群的地域,假設(shè)為cn-hangzhou。
創(chuàng)建微服務(wù)空間。具體操作,請參見創(chuàng)建命名空間。
如果已經(jīng)存在命名空間,您可以調(diào)用ListUserDefineRegion接口查詢用戶自定義命名空間列表,獲取目標(biāo)命名空間的RegionId。
如果您要在專有網(wǎng)絡(luò)VPC中創(chuàng)建ECS集群,請先創(chuàng)建VPC。具體操作,請參見搭建IPv4專有網(wǎng)絡(luò)。
如果您已經(jīng)創(chuàng)建了專有網(wǎng)絡(luò)VPC,則可以調(diào)用ListVpc接口查詢VPC列表,獲取VPC實例ID(VpcId),假設(shè)為vpc-bp1hcg467ekqsv****。
背景信息
EDAS提供兩類ECS集群:阿里云ECS集群和非阿里云ECS集群(混合云ECS集群)。- 阿里云ECS集群:由阿里云的ECS組成的集群。本文介紹如何創(chuàng)建阿里云ECS集群。
- 非阿里云ECS集群:即混合云ECS集群,可以包含阿里云的ECS、本地IDC內(nèi)的服務(wù)器以及其他云服務(wù)提供商的服務(wù)器。這些服務(wù)器通過專線連通,并添加到EDAS的非阿里云ECS集群中進(jìn)行管理。關(guān)于非阿里云ECS集群的更多信息,請參見創(chuàng)建混合云ECS集群。
創(chuàng)建ECS集群
以下代碼用于創(chuàng)建ECS集群。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.edas.model.v20170801.InsertClusterRequest;
import com.aliyuncs.edas.model.v20170801.InsertClusterResponse;
public class InsertCluster {
public static void main(String[] args) {
// 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,風(fēng)險很高。強(qiáng)烈建議您創(chuàng)建并使用RAM用戶進(jìn)行API訪問或日常運(yùn)維,請登錄RAM控制臺創(chuàng)建RAM用戶。
// 此處以把AccessKey和AccessKeySecret保存在環(huán)境變量為例說明。您可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。
// 強(qiáng)烈建議不要把AccessKey和AccessKeySecret保存到代碼里,會存在密鑰泄漏風(fēng)險。
String aliyun_user_ak = System.getenv("ACCESS_KEY_ID");
String aliyun_user_sk = System.getenv("ACCESS_KEY_SECRET");
//要創(chuàng)建ECS集群的目標(biāo)地域ID。
String region_id = "cn-hangzhou";
DefaultProfile defaultProfile = DefaultProfile.getProfile(region_id, aliyun_user_ak, aliyun_user_sk);
DefaultAcsClient client = new DefaultAcsClient(defaultProfile);
//創(chuàng)建API請求,并設(shè)置參數(shù)。
InsertClusterRequest request = new InsertClusterRequest();
//需要創(chuàng)建ECS集群的目標(biāo)微服務(wù)空間的RegionId,例如:cn-hangzhou:doc。
request.setLogicalRegionId("cn-hangzhou:doc");
//自定義ECS集群名稱,例如:ECSClueter_doc。
request.setClusterName("ECSClueter_doc");
//設(shè)置集群類型,設(shè)置為2,即代表ECS集群。
request.setClusterType(2);
//設(shè)置集群網(wǎng)絡(luò)類型,2代表專有網(wǎng)絡(luò)VPC,1代表經(jīng)典網(wǎng)絡(luò)。
request.setNetworkMode(2);
//VPC實例ID,當(dāng)選擇專有網(wǎng)絡(luò)VPC時,此參數(shù)必填。
request.setVpcId("vpc-bp1hcg467ekqsv****");
try {
InsertClusterResponse response = client.getAcsResponse(request);
System.out.println("Message=" + response.getMessage() + "\nClusterName=" + response.getCluster().getClusterName()+ "\nClusterId=" + response.getCluster().getClusterId());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
運(yùn)行程序,返回的執(zhí)行結(jié)果如下:
Message=success
ClusterName=ECSClueter_doc
ClusterId=369d06d7-450b-4f3d-bf75-9536fcd9****
結(jié)果驗證
在創(chuàng)建ECS集群后,您可以調(diào)用ListCluster接口查詢集群列表,根據(jù)返回結(jié)果中的集群名稱(ClusterName)參數(shù)值判斷您是否操作成功。
調(diào)用ListCluster接口返回的結(jié)果如下:
{
"ClusterList": {
"Cluster": [
{
"OversoldFactor": 1,
"NodeNum": 0,
"ResourceGroupId": "rg-acfm3umruf2****",
"ClusterId": "369d06d7-450b-4f3d-bf75-9536fcd9****",
"CreateTime": 1618558401855,
......
"VpcId": "vpc-bp1hcg467ekqsv0zr****",
"UpdateTime": 1618558401855,
"ClusterName": "ECSClueter_doc",
"RegionId": "cn-hangzhou:doc",
"IaasProvider": "ALIYUN",
"CpuUsed": 0
}
]
},
"Message": "success",
"RequestId": "65C65D19-36BF-40C1-A3D0-23902D2AF49C",
"Code": 200
}
文檔內(nèi)容是否對您有幫助?