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