使用API管理微服务空间

本文介绍如何使用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
}