本文介绍如何使用EDAS提供的Java SDK调用API在ECS集群中终止应用升级变更流程。

前提条件

在终止应用升级变更流程前,您必须提前完成以下准备工作:

终止应用变更

以下代码适用于在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)  {
        //阿里云账号或RAM用户的AccessKey ID。
        String aliyun_user_ak = "<yourAccessKeyId>";
        //阿里云账号或RAM用户的AccessKey Secret。
        String aliyun_user_sk = "<yourAccessKeySecret>";
        //应用所在地域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:系统异常执行失败