本文介紹如何使用EDAS提供的Java SDK調用API建立、編輯和刪除自訂微服務空間。
前提條件
- 安裝EDAS的Java SDK。更多資訊,請參見Java SDK接入指南。
確定微服務空間建立的地區,假設為cn-hangzhou。
建立或編輯微服務空間
以下代碼用於快速建立或編輯自訂微服務空間。
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.InsertOrUpdateRegionRequest;
import com.aliyuncs.edas.model.v20170801.InsertOrUpdateRegionResponse;
public class InsertOrUpdateRegion {
public static void main(String[] args) {
// 阿里雲帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM使用者進行API訪問或日常營運,請登入RAM控制台建立RAM使用者。
// 此處以把AccessKey和AccessKeySecret儲存在環境變數為例說明。您可以根據業務需要,儲存到設定檔裡。
// 強烈建議不要把AccessKey和AccessKeySecret儲存到代碼裡,會存在密鑰泄漏風險。
String aliyun_user_ak = System.getenv("ACCESS_KEY_ID");
String aliyun_user_sk = System.getenv("ACCESS_KEY_SECRET");
//需要建立或編輯的微服務空間所在地區ID。
String region_id = "cn-hangzhou";
DefaultProfile defaultProfile = DefaultProfile.getProfile(region_id, aliyun_user_ak, aliyun_user_sk);
DefaultAcsClient client = new DefaultAcsClient(defaultProfile);
//建立API請求,並設定參數。
InsertOrUpdateRegionRequest request = new InsertOrUpdateRegionRequest();
//微服務空間ID,格式為“地區ID:微服務空間標識符”,例如:cn-hangzhou:doc。
request.setRegionTag("cn-hangzhou:doc");
//微服務空間名稱,例如:APIdoc。
request.setRegionName("APIdoc");
//微服務空間的描述資訊。
request.setDescription("使用API建立的微服務空間");
//此參數為空白或者為0表示建立微服務空間,其他取值表示編輯微服務空間。
request.setId((long) 0);
//是否允許遠端偵錯,true表示允許,false表示不允許。
request.setDebugEnable(true);
try {
InsertOrUpdateRegionResponse response = client.getAcsResponse(request);
System.out.println("RegionName=" + response.getUserDefineRegionEntity().getRegionName() + "\nRegionId=" + response.getUserDefineRegionEntity().getRegionId()+ "\nId=" + response.getUserDefineRegionEntity().getId());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}運行程式,返回的執行結果如下:
RegionName=APIdoc
RegionId=cn-hangzhou:doc
Id=17926說明
此處執行結果中的Id=17926,是系統中定義微服務空間的唯一標識序號。如果您需要刪除微服務空間,則需要通過這個標識進行刪除。
微服務空間一旦建立,所自動產生的AccessKey(AK,SK)不支援編輯。
刪除微服務空間
刪除微服務空間需要滿足以下前提條件:
微服務空間下無任何叢集。
微服務空間下無任何微服務應用。
微服務空間下無任何ECS執行個體。
如果您在建立或編輯微服務空間時,已記錄微服務空間的唯一標識序號(如Id=17926),則可以直接進行刪除操作。
如果您沒有記錄微服務空間的唯一標識,則需要調用ListUserDefineRegion介面,擷取微服務空間的唯一標識序號。
以下代碼用於快速刪除目標微服務空間。
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.DeleteUserDefineRegionRequest;
import com.aliyuncs.edas.model.v20170801.DeleteUserDefineRegionResponse;
public class DeleteUserDefineRegion {
public static void main(String[] args) {
// 阿里雲帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM使用者進行API訪問或日常營運,請登入RAM控制台建立RAM使用者。
// 此處以把AccessKey和AccessKeySecret儲存在環境變數為例說明。您可以根據業務需要,儲存到設定檔裡。
// 強烈建議不要把AccessKey和AccessKeySecret儲存到代碼裡,會存在密鑰泄漏風險。
String aliyun_user_ak = System.getenv("ACCESS_KEY_ID");
String aliyun_user_sk = System.getenv("ACCESS_KEY_SECRET");
//需要刪除的微服務空間所在地區ID。
String region_id = "cn-hangzhou";
DefaultProfile defaultProfile = DefaultProfile.getProfile(region_id, aliyun_user_ak, aliyun_user_sk);
DefaultAcsClient client = new DefaultAcsClient(defaultProfile);
//建立API請求,並設定參數。
DeleteUserDefineRegionRequest request = new DeleteUserDefineRegionRequest();
//待刪除的微服務空間的唯一標識序號。
request.setId((long) 17926);
try {
DeleteUserDefineRegionResponse response = client.getAcsResponse(request);
System.out.println("RegionName=" + response.getRegionDefine().getRegionName() + "\nRegionId=" + response.getRegionDefine().getRegionId()+ "\nMessage=" + response.getMessage());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}運行程式,返回的執行結果如下所示:
RegionName=APIdoc
RegionId=cn-hangzhou:doc
Message=success結果驗證
您在進行建立、編輯或刪除微服務空間操作後,都可以調用ListUserDefineRegion介面查詢您的自訂微服務空間列表,根據返回結果中的RegionName、RegionId和Description等參數進行判斷您是否操作成功。
調用ListUserDefineRegion介面返回的結果如下:
{
"Message": "success",
"RequestId": "849E908D-E2DE-4798-937B-7210E00FFDD8",
"UserDefineRegionList": {
"UserDefineRegionEntity": [
{
"Description": "使用API建立的微服務空間",
"RegionName": "APIdoc2",
"UserId": "native_****",
"DebugEnable": true,
"Id": 17925,
"RegionId": "cn-hangzhou:doc2",
"BelongRegion": "cn-hangzhou"
}
]
},
"Code": 200
}