本文介绍如何使用EDAS提供的Java SDK调用API在ECS集群中终止应用升级变更流程。
前提条件
在终止应用升级变更流程前,您必须提前完成以下准备工作:
- 安装EDAS的Java SDK。更多信息,请参见Java SDK接入指南。
- 确定应用部署地域,假设为cn-hangzhou。
确保目标应用处于升级变更流程中,请根据实际需求选择应用升级方式:
可选:调用ListRecentChangeOrder接口,查询应用变更记录,获取应用正在升级变更的变更单流程ID(ChangeOrderId)。假设为47e2b863-adc8-4a0e-ac23-8361b95a****。
如果您在升级应用时已经记录变更单流程ID(ChangeOrderId),则无需调用该接口。
终止应用变更
以下代码适用于在EDAS ECS环境终止应用变更。
说明
以下示例代码只能终止应用变更,无法自动回滚到应用变更前的版本。您需要回滚应用到变更前版本,解决新版本应用问题后,再重新部署应用。回滚应用到变更前版本的操作,请参见使用API在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.AbortChangeOrderRequest;
import com.aliyuncs.edas.model.v20170801.AbortChangeOrderResponse;
public class AbortChangeOrder {
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请求,并设置参数。
AbortChangeOrderRequest request = new AbortChangeOrderRequest();
//应用升级变更流程ID。
request.setChangeOrderId("47e2b863-adc8-4a0e-ac23-8361b95a****");
try {
AbortChangeOrderResponse response = client.getAcsResponse(request);
System.out.println("Message=" + response.getMessage() + "\nRequestId=" + response.getRequestId());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
运行程序,返回的执行结果如下所示:
Message=success
RequestId=19C54DC3-C66C-40D0-AEED-8D5A1F00F3BA
结果验证
您在执行终止应用变更流程后,可以调用GetChangeOrderInfo接口查看变更流程详情,获取应用升级的变更状态。具体API参数详情,请参见GetChangeOrderInfo。
调用GetChangeOrderInfo接口查看变更流程详情,返回的执行结果如下:
{
"Message": "success",
"RequestId": "CCC48EB3-E628-45B4-8DF3-ED8551119742",
"Code": 200,
"changeOrderInfo": {
"Status": 6,
"Desc": "create by edas pop api",
"PipelineInfoList": {
"PipelineInfo": [
{
......
//此处未罗列全部执行结果,仅供参考。
请查看上述执行结果中的changeOrderInfo.Status参数值,通过该值判断终止应用变更流程是否成功。changeOrderInfo.Status的取值如下:
0:准备
1:执行中
2:执行成功
3:执行失败
6:终止
8:手动分批发布模式下,等待手工确认执行下一批。
9:自动分批发布模式下,等待下一批执行中。
10:系统异常执行失败
文档内容是否对您有帮助?