文档首页/ 云搜索服务 CSS/ API参考/ API V1/ 集群管理/ 获取集群升级或切换AZ的详情信息
更新时间:2025-08-14 GMT+08:00
分享

获取集群升级或切换AZ的详情信息

功能介绍

为防止数据丢失,并确保在服务中断情况下能降低集群的停机时间,从而增强集群的高可用性,CSS服务支持跨可用区(即多可用区)部署。用户可以在同一个区域内选择两个或三个不同的可用区进行集群部署。由于升级过程时间较长,该接口可以展示当前集群升级或者切换可用区时,节点的各个阶段信息。

调用方法

请参见如何调用API

URI

GET /v1.0/{project_id}/clusters/{cluster_id}/upgrade/detail

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

项目ID。获取方法请参见获取项目ID和名称

约束限制

不涉及

取值范围

账户的项目ID。

默认取值

不涉及

cluster_id

String

参数解释

待升级的集群的ID。获取方法请参见获取集群ID

约束限制

不涉及

取值范围

集群ID。

默认取值

不涉及

表2 Query参数

参数

是否必选

参数类型

描述

offset

Integer

参数解释

指定查询集群可用区详情的起始值,默认值为1,即从第1个任务开始查询。

约束限制

不涉及

取值范围

1-1000

默认取值

1

limit

Integer

参数解释

指定查询集群可用区详情的个数,默认值为10,即一次查询10个任务信息。

约束限制

不涉及

取值范围

1-1000

默认取值

10

action_mode

String

参数解释

查询集群升级详情或者切换可用区详情。

约束限制

不涉及

取值范围

  • UPGRADING:查询集群升级详情。

  • AZ_MIGRATION:查询集群切换可用区详情。

默认取值

UPGRADING

请求参数

响应参数

状态码:200

表3 响应Body参数

参数

参数类型

描述

totalSize

Integer

参数解释

集群升级或者切换可用区的任务总数。

取值范围

不涉及

detailList

Array of GetUpgradeDetailInfo objects

参数解释

集群升级或者切换可用区任务详情信息。

取值范围

不涉及

表4 GetUpgradeDetailInfo

参数

参数类型

描述

id

String

参数解释

升级或者切换可用区任务ID。

取值范围

不涉及

startTime

String

参数解释

升级或者切换可用区任务开始时间。

取值范围

不涉及

endTime

String

参数解释

升级或者切换可用区任务结束时间。

取值范围

不涉及

status

String

参数解释

升级或者切换可用区任务状态。

取值范围

  • RUNNING:任务执行中。

  • SUCCESS:任务成功。

  • FAILED:任务失败。

  • PARTIAL_FAILED:部分任务失败。

agencyName

String

参数解释

委托名称,选择IAM委托,当前账号授权CSS服务访问和使用ELB资源,如果首次配置委托,可以单击“自动创建委托”新建委托“css_elb_agency”直接使用。

取值范围

不涉及

imageInfo

GetTargetImageIdDetail object

参数解释

镜像详情信息。

取值范围

不涉及

totalNodes

String

参数解释

所有需要升级或者切换可用区的节点名称集合。

取值范围

通过查询集群详情获取instances中的Name属性。

completedNodes

String

参数解释

已经完成所有升级操作或切换可用区操作的节点名称集合。

取值范围

通过查询集群详情获取instances中的Name属性。

currentNodeName

String

参数解释

当前正在升级或者切换可用区的节点名称。

取值范围

通过查询集群详情获取instances中的Name属性。

executeTimes

String

参数解释

集群可用区升级或切换的重试次数。

取值范围

不涉及

migrateParam

String

参数解释

当action_mode为AZ_MIGRATION才有该参数,表示集群切换可用区任务的请求参数。

取值范围

不涉及

finalAzInfoMap

String

参数解释

当action_mode为AZ_MIGRATION才有该参数,表示集群切换可用区后,各节点对应的可用区详情。

取值范围

不涉及

currentNodeDetail

Array of CurrentNodeDetail objects

参数解释

当前正在升级或切换可用区的节点任务详情。

取值范围

不涉及

batchSize

Integer

参数解释

同时有多少个节点在迁移数据。

取值范围

不涉及

currentBatchNodes

String

参数解释

当前正在迁移数据的节点。

取值范围

不涉及

表5 GetTargetImageIdDetail

参数

参数类型

描述

id

String

参数解释

可以升级的目标镜像ID。

取值范围

不涉及

displayName

String

参数解释

可以升级的目标镜像名称。

取值范围

不涉及

imageDesc

String

参数解释

镜像描述信息。

取值范围

不涉及

datastoreType

String

参数解释

集群引擎类型。

取值范围

  • elasticsearch:基于开源Elasticsearch提供在线分布式搜索、日志统计报表、语义搜索等功能。

  • logstash:基于开源Logstash提供数据收集、转换、清洗、解析等功能。

  • opensearch:基于开源OpenSearch提供分布式搜索、日志统计报表、语义搜索等功能,是CSS服务Elasticsearch集群的下一代版本。

datastoreVersion

String

参数解释

镜像引擎版本。

取值范围

不涉及

priority

Integer

参数解释

目标镜像优先级,数值越大,优先级越高。

取值范围

不涉及

表6 CurrentNodeDetail

参数

参数类型

描述

order

Integer

参数解释

升级或切换可用区任务序号。

取值范围

不涉及

name

String

参数解释

升级或切换可用区任务名称。

取值范围

不涉及

status

String

参数解释

当前集群升级或切换可用区的任务状态。

取值范围

  • RUNNING:运行中。

  • SUCCESS:成功。

  • FAILED:失败。

  • WAITING:等待。

desc

String

参数解释

当前集群升级或切换可用区的任务描述。

取值范围

不涉及

beginTime

String

参数解释

当前集群升级或切换可用区的任务开始时间。

取值范围

不涉及

endTime

String

参数解释

当前集群升级或切换可用区的任务结束时间。

取值范围

不涉及

请求示例

  • 查询集群升级详情。

    GET https://{Endpoint}/v1.0/{project_id}/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/upgrade/detail
  • 查询集群切换可用区详情。

    GET https://{Endpoint}/v1.0/{project_id}/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/upgrade/detail?action_mode=AZ_MIGRATION

响应示例

状态码:200

请求已成功。

  • 查询集群升级详情响应示例。

    {
      "totalSize" : 1,
      "detailList" : [ {
        "id" : "b7ac4c5b-3bda-4feb-a303-eb80f4bce986",
        "startTime" : "2023-01-05T02:23:39",
        "endTime" : "",
        "status" : "RUNNING",
        "agencyName" : "css_test_agency",
        "imageInfo" : {
          "id" : "439b5d30-5968-45df-b088-d030a858522d",
          "displayName" : "7.10.2_22.5.1_1230",
          "imageDesc" : "The latest image of version 7.10.2 will be officially released on December 30, 2022. the stability of the cluster has been optimized. It is recommended that you upgrade to this version.",
          "datastoreType" : "elasticsearch",
          "datastoreVersion" : "7.10.2",
          "priority" : 16
        },
        "totalNodes" : "css-test-ess-esn-1-1,css-test-ess-esn-2-1,css-test-ess-esn-3-1",
        "completedNodes" : "",
        "currentNodeName" : "css-test-ess-esn-1-1",
        "executeTimes" : "1",
        "currentNodeDetail" : [ {
          "order" : 0,
          "name" : "Data migration",
          "status" : "SUCCESS",
          "desc" : "Data is migrated from a node to other nodes in the cluster by running the exclude command.",
          "beginTime" : "2023-01-05T02:23:42",
          "endTime" : "2023-01-05T02:29:51"
        }, {
          "order" : 12,
          "name" : "Task status update",
          "status" : "WAITING",
          "desc" : "The cluster task status is refreshed. If there are no nodes to be replaced, the task is marked as completed. Otherwise, another node starts to be replaced.",
          "beginTime" : "",
          "endTime" : ""
        } ]
      } ]
    }
  • 查询集群切换可用区详情响应示例。

    {
      "totalSize" : 1,
      "detailList" : [ {
        "id" : "8ebe958b-b8c6-4939-b5a7-85aee9468888",
        "startTime" : "2022-12-29T08:32:29",
        "endTime" : "",
        "status" : "RUNNING",
        "agencyName" : "css_test_agency",
        "totalNodes" : "css-test-ess-esn-2-1,css-test-ess-esn-1-1,css-test-ess-esn-3-1",
        "completedNodes" : "css-test-ess-esn-2-1",
        "currentNodeName" : "css-test-ess-esn-1-1",
        "executeTimes" : "1",
        "migrateParam" : "{\"instType\":\"ess\",\"migrateType\":\"az_migrate\",\"sourceAz\":\"cn-north-4a\",\"targetAz\":\"cn-north-4c\"}",
        "finalAzInfoMap" : "{\"cn-north-4c\":\"css-test-ess-esn-2-1,css-test-ess-esn-1-1,css-test-ess-esn-3-1\"}",
        "currentNodeDetail" : [ {
          "order" : 0,
          "name" : "Data migration",
          "status" : "SUCCESS",
          "desc" : "Data is migrated from a node to other nodes in the cluster by running the exclude command.",
          "beginTime" : "2022-12-29T08:41:05",
          "endTime" : "2022-12-29T08:41:23"
        }, {
          "order" : 12,
          "name" : "Task status update",
          "status" : "RUNNING",
          "desc" : "The cluster task status is refreshed. If there are no nodes to be replaced, the task is marked as completed. Otherwise, another node starts to be replaced.",
          "beginTime" : "2023-01-04T06:53:42",
          "endTime" : ""
        } ]
      } ]
    }

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.css.v1.region.CssRegion;
import com.huaweicloud.sdk.css.v1.*;
import com.huaweicloud.sdk.css.v1.model.*;


public class UpgradeDetailSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CssClient client = CssClient.newBuilder()
                .withCredential(auth)
                .withRegion(CssRegion.valueOf("<YOUR REGION>"))
                .build();
        UpgradeDetailRequest request = new UpgradeDetailRequest();
        request.withClusterId("{cluster_id}");
        try {
            UpgradeDetailResponse response = client.upgradeDetail(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcss.v1.region.css_region import CssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcss.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = UpgradeDetailRequest()
        request.cluster_id = "{cluster_id}"
        response = client.upgrade_detail(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := css.NewCssClient(
        css.CssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpgradeDetailRequest{}
	request.ClusterId = "{cluster_id}"
	response, err := client.UpgradeDetail(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

请求已成功。

400

非法请求。

建议直接修改该请求,不要重试该请求。

403

请求被拒绝访问。

返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

错误码

请参见错误码

相关文档