更新时间:2024-12-11 GMT+08:00
分享

查询数据库代理信息列表

功能介绍

查询数据库代理信息列表。

调用方法

请参见如何调用API

URI

GET /v3/{project_id}/instances/{instance_id}/proxies

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

租户在某一Region下的project ID。

获取方法请参见获取项目ID

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,且长度为32个字符。

默认值

不涉及。

instance_id

String

参数解释

实例ID,此参数是实例的唯一标识。

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,后缀为in07,长度为36个字符。

默认取值

不涉及。

表2 Query参数

参数

是否必选

参数类型

描述

offset

Integer

参数解释

索引位置,偏移量。从第一条数据偏移offset条数据后开始查询。

约束限制

必须为整数,不能为负数。

取值范围

≥0

默认取值

0

limit

Integer

参数解释

查询记录数。

约束限制

必须为整数,不能为负数。

取值范围

1-100

默认取值

100

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释

用户Token。

通过调用IAM服务获取用户Token接口获取。

请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。

约束限制

不涉及。

取值范围

不涉及。

默认值

不涉及。

X-Language

String

参数解释

请求语言类型。

约束限制

不涉及。

取值范围

  • en-us

  • zh-cn

默认值

en-us。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

proxy_list

Array of MysqlShowProxyResponseV3 objects

参数解释

数据库代理信息列表。

表5 MysqlShowProxyResponseV3

参数

参数类型

描述

proxy

MysqlProxyV3 object

参数解释

数据库代理信息。

master_node

MysqlProxyNodeV3 object

参数解释

主节点信息。

readonly_nodes

Array of MysqlProxyNodeV3 objects

参数解释

只读节点信息。

表6 MysqlProxyV3

参数

参数类型

描述

pool_id

String

参数解释

数据库代理ID。

取值范围

只能由英文字母、数字组成,后缀为po01,长度为36个字符。

status

String

参数解释

数据库代理开启状态。

取值范围

  • ACTIVE:表示数据库代理正常。

  • FAILED:表示数据库代理创建失败。

  • DELETED:表示数据库代理已删除。

  • ABNORMAL:表示数据库代理异常。

  • ENABLING PROXY:表示数据库代理正在开启。

  • DISABLING PROXY:表示数据库代理正在关闭。

  • ADDING PROXY NODE:表示数据库代理正在扩容。

  • DELETING READ REPLICAS FROM PROXY:表示数据库代理正在移除只读节点。

  • ADDING READ REPLICAS TO PROXY:表示数据库代理正在添加只读节点。

  • CHANGING WEIGHTS:表示数据库代理正在修改只读节点权重。

address

String

参数解释

数据库代理读写分离地址。

取值范围

不涉及。

port

Integer

参数解释

数据库代理端口信息。

取值范围

不涉及。

pool_status

String

参数解释

数据库代理状态。

取值范围

  • ACTIVE:表示数据库代理正常。

  • ABNORMAL:表示数据库代理异常。

  • FAILED:表示数据库代理创建失败。

  • DELETED:表示数据库代理已删除。

delay_threshold_in_seconds

Integer

参数解释

延时阈值,单位:秒。

取值范围

不涉及。

elb_vip

String

参数解释

Elb模式的虚拟IP信息。

取值范围

不涉及。

eip

String

参数解释

弹性公网IP地址信息。

取值范围

不涉及。

vcpus

String

参数解释

数据库代理规格的CPU数量。

取值范围

不涉及。

ram

String

参数解释

数据库代理规格的内存数量。

取值范围

不涉及。

node_num

Integer

参数解释

数据库代理节点个数。

取值范围

不涉及。

mode

String

参数解释

数据库代理主备模式。

取值范围

Cluster。

nodes

Array of MysqlProxyNodes objects

参数解释

数据库代理节点信息。

flavor_ref

String

参数解释

数据库代理规格信息。

取值范围

不涉及。

name

String

参数解释

数据库代理名称。

取值范围

不涉及。

transaction_split

String

参数解释

数据库代理事务拆分开关状态。

取值范围

  • true:开启。

  • false:关闭。

connection_pool_type

String

参数解释

连接池类型。

取值范围:

  • CLOSED: 关闭连接池。

  • SESSION: 开启会话级连接池。

switch_connection_pool_type_enabled

Boolean

参数解释

数据库代理版本是否支持会话级连接池。

取值范围:

  • true: 支持。

  • false: 不支持。

route_mode

Integer

参数解释

数据库代理路由模式。

取值范围

  • 0:表示权重负载模式。

  • 1:表示负载均衡模式(数据库主节点不接受读请求)。

  • 2:表示负载均衡模式(数据库主节点接受读请求)。

balance_route_mode_enabled

Boolean

参数解释

数据库代理版本是否支持负载均衡模式。

取值范围

  • true 支持。

  • false 不支持。

consistence_mode

String

参数解释

一致性模式。默认值为空,此时以会话一致性参数session_consistence的值为准。

取值范围

  • session:会话一致性(当session_consistence为true时,只能取该值)。

  • global:全局一致性(当session_consistence为false时,可取该值)。

  • eventual:最终一致性(当session_consistence为false时,可取该值)。

subnet_id

String

参数解释

数据库代理所属的子网ID。

取值范围

不涉及。

ssl_option

String

参数解释

SSL数据加密开关设置。

取值范围

  • true:开启SSL数据加密。

  • false:关闭SSL数据加密。

new_node_auto_add_status

String

参数解释

新增节点是否自动加入该数据库代理。

取值范围

  • ON:自动加入。

  • OFF:不自动加入。

new_node_weight

Integer

参数解释

新增节点的读权重。

取值范围

1-1000。

表7 MysqlProxyNodes

参数

参数类型

描述

id

String

数据库代理节点ID。

status

String

参数解释

数据库代理节点状态。

取值范围

  • ACTIVE:表示节点正常。

  • ABNORMAL:表示节点异常。

  • FAILED:表示节点失败。

  • DELETED:表示节点已删除。

name

String

参数解释

数据库代理节点名称。

取值范围

不涉及。

role

String

参数解释

数据库代理节点角色。

取值范围

  • master:主节点。

  • slave:只读节点。

az_code

String

参数解释

可用区。

取值范围

不涉及。

frozen_flag

Integer

参数解释

数据库代理节点是否被冻结。

取值范围

  • 0:未冻结。

  • 1:冻结。

  • 2:冻结删除。

表8 MysqlProxyNodeV3

参数

参数类型

描述

id

String

参数解释

数据库代理节点ID。

取值范围

只能由英文字母、数字组成,后缀为no07,长度为36个字符。

instance_id

String

参数解释

实例ID,此参数是实例的唯一标识。

取值范围

只能由英文字母、数字组成,后缀为in07,长度为36个字符。

status

String

参数解释

节点状态。

取值范围

  • ACTIVE:表示节点正常。

  • ABNORMAL:表示节点异常。

  • FAILED:表示节点失败。

  • DELETED:表示节点已删除。

name

String

参数解释

节点名称。

取值范围

不涉及。

weight

Integer

参数解释

节点读写分离读权重。

取值范围

1-1000。

availability_zone

Array of MysqlProxyAvailable objects

参数解释

可用区信息。

表9 MysqlProxyAvailable

参数

参数类型

描述

code

String

参数解释

可用区编码。

取值范围

不涉及。

description

String

参数解释

可用区描述。

取值范围

不涉及。

状态码: 400

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误消息。

状态码: 500

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误消息。

请求示例

查询实例的数据库代理信息列表。

GET https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/517ea793ab91438cbfcd9c4b1c958b1ein07/proxies?offset=0&limit=10

响应示例

状态码: 200

Success.

{
  "proxy_list" : [ {
    "proxy" : {
      "pool_id" : "2e7cf21d14794bafab623a334efd9ad8po01",
      "status" : "ACTIVE",
      "address" : "192.168.125.69",
      "port" : 3306,
      "pool_status" : "ACTIVE",
      "delay_threshold_in_seconds" : 30,
      "elb_vip" : "192.168.125.60",
      "eip" : "192.168.125.50",
      "vcpus" : 4,
      "ram" : 8,
      "node_num" : 2,
      "mode" : "Cluster",
      "nodes" : [ {
        "id" : "db53a238a02240c49365e72e284a4890pn01",
        "name" : "PROXY-2e7cf21d14794bafab623a334efd9ad8po01_0",
        "role" : "master",
        "az_code" : "az1xahz",
        "status" : "ACTIVE",
        "frozen_flag" : 0
      } ],
      "name" : "proxy-name",
      "connection_pool_type" : "SESSION",
      "switch_connection_pool_type_enabled" : true,
      "route_mode" : 1,
      "balance_route_mode_enabled" : true,
      "transaction_split" : "OFF",
      "consistence_mode" : "session",
      "subnet_id" : "6991d82d-9166-4aff-a1fa-d2a8748b7084",
      "new_node_auto_add_status" : "ON",
      "new_node_weight" : 100
    },
    "master_node" : {
      "id" : "c01a5645eb2c4fb6a9373542f5366e50no07",
      "instance_id" : "517ea793ab91438cbfcd9c4b1c958b1ein07",
      "status" : "ACTIVE",
      "name" : "taurus_mysql80_x86-ondemand-2-1U4G_1_202103070251274842281_node01",
      "weight" : 0,
      "availability_zone" : [ {
        "code" : "az1",
        "description" : "可用区1"
      } ]
    },
    "readonly_nodes" : {
      "id" : "d23535333138462880bfa1838fdfced2no07",
      "instance_id" : "517ea793ab91438cbfcd9c4b1c958b1ein07",
      "status" : "ACTIVE",
      "name" : "taurus_mysql80_x86-ondemand-2-1U4G_1_202103070251274842281_node02",
      "weight" : 100,
      "availability_zone" : [ {
        "code" : "az1",
        "description" : "可用区1"
      } ]
    }
  } ]
}

SDK代码示例

SDK代码示例如下。

Java

 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.gaussdb.v3.region.GaussDBRegion;
import com.huaweicloud.sdk.gaussdb.v3.*;
import com.huaweicloud.sdk.gaussdb.v3.model.*;


public class ShowGaussMySqlProxyListSolution {

    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);

        GaussDBClient client = GaussDBClient.newBuilder()
                .withCredential(auth)
                .withRegion(GaussDBRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowGaussMySqlProxyListRequest request = new ShowGaussMySqlProxyListRequest();
        request.withInstanceId("{instance_id}");
        try {
            ShowGaussMySqlProxyListResponse response = client.showGaussMySqlProxyList(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

 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 huaweicloudsdkgaussdb.v3.region.gaussdb_region import GaussDBRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkgaussdb.v3 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 = GaussDBClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(GaussDBRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowGaussMySqlProxyListRequest()
        request.instance_id = "{instance_id}"
        response = client.show_gauss_my_sql_proxy_list(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

 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"
    gaussdb "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/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 := gaussdb.NewGaussDBClient(
        gaussdb.GaussDBClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowGaussMySqlProxyListRequest{}
	request.InstanceId = "{instance_id}"
	response, err := client.ShowGaussMySqlProxyList(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多

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

状态码

状态码

描述

200

Success.

400

Client error.

500

Server error.

错误码

请参见错误码

相关文档