全部產品
Search
文件中心

Enterprise Distributed Application Service:使用API管理微服務空間

更新時間:Jul 06, 2024

本文介紹如何使用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介面查詢您的自訂微服務空間列表,根據返回結果中的RegionNameRegionIdDescription等參數進行判斷您是否操作成功。

調用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
}