Help Center/ Cloud Search Service/ API Reference/ API V1/ Cluster Management/ Changing AZs for a Cluster Instance
Updated on 2025-08-15 GMT+08:00

Changing AZs for a Cluster Instance

Function

This API is used to change AZs by specifying node types.

Calling Method

For details, see Calling APIs.

URI

POST /v1.0/{project_id}/clusters/{cluster_id}/inst-type/{inst_type}/azmigrate

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition:

Project ID. For details about how to obtain the project ID and name, see Obtaining the Project ID and Name.

Constraints:

N/A

Value range:

Project ID of the account.

Default value:

N/A

cluster_id

Yes

String

Definition:

ID of the cluster whose AZs are to be changed. For details about how to obtain the cluster ID, see Obtaining the Cluster ID.

Constraints:

N/A

Value range:

Cluster ID.

Default value:

N/A

inst_type

Yes

String

Definition:

Types of nodes whose AZ is to be changed.

Constraints:

N/A

Value range:

  • all: all node types

  • ess: data node

  • ess-cold: cold data node

  • ess-client: client node

  • ess-master: master node

Default value:

N/A

NOTE:
All mission-critical data has been backed up before an AZ switchover. This is to prevent data loss.

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

source_az

Yes

String

Definition:

AZ where the node is located.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

target_az

Yes

String

Definition:

AZ where the node is expected to be distributed.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

migrate_type

Yes

String

Definition:

AZ migration method.

Constraints:

N/A

Value range:

  • multi_az_change: HA reconstruction

  • az_migrate: AZ migration

Default value:

N/A

agency

Yes

String

Definition:

Agency name. You can create an agency to allow CSS to call other cloud services.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

indices_backup_check

No

Boolean

Definition:

Whether to check full index snapshots.

Constraints:

N/A

Value range:

  • true: Check for full index snapshots.

  • false: Do not check for full index snapshots.

Default value:

true

Response Parameters

Status code: 200

Request succeeded.

None

Example Requests

Change AZs for the current cluster.

POST https://{Endpoint}/v1.0/{project_id}/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/inst-type/all/azmigrate

{
  "source_az" : "cn-north-4c",
  "target_az" : "cn-north-4a",
  "migrate_type" : "az_migrate",
  "agency" : "css-test-agency"
}

Example Responses

None

SDK Sample Code

The SDK sample code is as follows.

Java

Change AZs for the current cluster.

 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
49
50
51
52
53
54
55
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 UpdateAzByInstanceTypeSolution {

    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();
        UpdateAzByInstanceTypeRequest request = new UpdateAzByInstanceTypeRequest();
        request.withClusterId("{cluster_id}");
        request.withInstType(UpdateAzByInstanceTypeRequest.InstTypeEnum.fromValue("{inst_type}"));
        UpdateAzByInstanceTypeReq body = new UpdateAzByInstanceTypeReq();
        body.withAgency("css-test-agency");
        body.withMigrateType("az_migrate");
        body.withTargetAz("cn-north-4a");
        body.withSourceAz("cn-north-4c");
        request.withBody(body);
        try {
            UpdateAzByInstanceTypeResponse response = client.updateAzByInstanceType(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());
        }
    }
}

Python

Change AZs for the current cluster.

 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
# 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 = UpdateAzByInstanceTypeRequest()
        request.cluster_id = "{cluster_id}"
        request.inst_type = "{inst_type}"
        request.body = UpdateAzByInstanceTypeReq(
            agency="css-test-agency",
            migrate_type="az_migrate",
            target_az="cn-north-4a",
            source_az="cn-north-4c"
        )
        response = client.update_az_by_instance_type(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

Change AZs for the current cluster.

 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
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.UpdateAzByInstanceTypeRequest{}
	request.ClusterId = "{cluster_id}"
	request.InstType = model.GetUpdateAzByInstanceTypeRequestInstTypeEnum().INST_TYPE
	request.Body = &model.UpdateAzByInstanceTypeReq{
		Agency: "css-test-agency",
		MigrateType: "az_migrate",
		TargetAz: "cn-north-4a",
		SourceAz: "cn-north-4c",
	}
	response, err := client.UpdateAzByInstanceType(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Request succeeded.

400

Invalid request.

The client should not repeat the request without modifications.

403

The request is rejected. The server has received the request and understood it, but the server is refusing to respond to it. The client should not repeat the request without modifications.

Error Codes

See Error Codes.