Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ VPC Endpoint/ Referencia de la API/ API/ Servicios de punto de conexión de VPC/ Consulta de servicios de punto de conexión de VPC
Actualización más reciente 2024-09-14 GMT+08:00

Consulta de servicios de punto de conexión de VPC

Función

Esta API se utiliza para consultar los servicios de punto de conexión de VPC.

Método de invocación

Para obtener más información, consulte Invocación a las API.

URI

GET /v1/{project_id}/vpc-endpoint-services

Tabla 1 Parámetros de enrutamiento

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID de proyecto

Mínimo: 1

Máximo: 64

Tabla 2 Parámetros de consulta

Parámetro

Obligatorio

Tipo

Descripción

endpoint_service_name

No

String

Especifica el nombre del servicio de punto de conexión de VPC. El nombre no distingue entre mayúsculas y minúsculas y admite coincidencias difusas.

Mínimo: 1

Máximo: 128

id

No

String

Especifica el ID único del servicio de punto de conexión de VPC.

status

No

String

Especifica el estado del servicio de punto de conexión de VPC. ● creating: Se está creando el servicio de punto de conexión de VPC. ● available: Se puede conectar el servicio de punto de conexión de VPC. ● failed: no se puede crear el servicio de punto de conexión de VPC. ● deleting: Se está eliminando el servicio de punto de conexión de VPC.

sort_key

No

String

Especifica el campo de clasificación de los servicios de punto de conexión de VPC, que puede ser: ● create_at: Los servicios de punto de conexión de VPC se ordenan por hora de creación. ● update_at: Los servicios de punto de conexión de VPC se ordenan por tiempo de actualización. El campo predeterminado es create_at.

Valor predeterminado: create_at

sort_dir

No

String

Especifica el método de clasificación de los servicios de punto de conexión de VPC, que puede ser: ● desc: Los servicios de punto de conexión de VPC se clasifican en la orden descendente. ● asc: Los servicios de punto de conexión de VPC se clasifican en la orden ascendente. El método predeterminado es desc.

Predeterminado: desc

limit

No

Integer

Especifica la cantidad máxima de servicios de punto de conexión de VPC que se muestran en cada página. El valor oscila entre 0 y 1000 y generalmente es de 10, 20 o 50. El número predeterminado es 10.

Mínimo: 1

Máximo: 1000

Predeterminado: 10

offset

No

Integer

Especifica el desfase. Se consultarán todos los servicios de punto de conexión de VPC después de este desfase. El desfase debe ser un entero mayor que 0 pero menor que la cantidad de servicios punto de conexión de VPC.

Mínimo: 0

public_border_group

No

String

Especifica el servicio de punto de conexión de VPC que coincide con el atributo de borde en el resultado del filtrado.

Parámetros de solicitud

Tabla 3 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Especifica el token de usuario. Se puede obtener invocando a la API de IAM. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario.

Content-Type

No

String

Especifica el tipo MIME del cuerpo de la solicitud. Se recomienda el valor application/json. Para las API utilizadas para cargar objetos o imágenes, el tipo MIME varía en función del tipo de flujo.

Valor predeterminado: application/json

Parámetros de respuesta

Código de estado: 200

Tabla 4 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

endpoint_services

Array of ServiceList objects

Especifica los servicios de punto de conexión de VPC.

total_count

Integer

Especifica la cantidad total de servicios de punto de conexión de VPC que cumplen con los criterios de búsqueda. El número no se ve afectado por limit ni offset.

Tabla 5 ServiceList

Parámetro

Tipo

Descripción

id

String

Especifica el ID único del servicio de punto de conexión de VPC.

Mínimo: 1

Máximo: 64

port_id

String

Especifica el ID que identifica el recurso backend del servicio de punto de conexión de VPC. El ID está en formato de UUID. Si el recurso backend es ● Un balanceador de carga (recomendado), especifique el ID del puerto de la dirección IP privada del balanceador de carga. ● Un ECS, especifique el ID de NIC de la dirección IP del ECS. ● Una dirección IP virtual (descartada), especifique el ID de NIC del servidor físico donde se crean los recursos virtuales.

service_name

String

Especifica el nombre del servicio de punto de conexión de VPC.

Mínimo: 0

Máximo: 16

server_type

String

Especifica el tipo de recurso. ● VM: indica un servidor en la nube. ● VIP: indica una dirección IP virtual. ● LB: indica un balanceador de carga compartido.

vpc_id

String

Especifica el ID de la VPC a la que pertenece el recurso backend del servicio de punto de conexión de VPC.

Mínimo: 1

Máximo: 64

approval_enabled

Boolean

Especifica si se requiere aprobación. ● false: No se requiere aprobación. El punto de conexión de VPC creada se encuentra en el estado aceptado por defecto. ● true: Se requiere la aprobación. El punto de conexión de VPC creado se encuentra en el estado de pendingAcceptance, y solo puede ser utilizado después de ser aprobado por el usuario del servicio de punto de conexión de VPC.

status

String

Especifica el estado del servicio de punto de conexión de VPC. ● creating: Se está creando el servicio de punto de conexión de VPC. ● available: Se puede conectar el servicio de punto de conexión de VPC. ● failed: no se puede crear el servicio de punto de conexión de VPC. ● deleting: Se está eliminando el servicio de punto de conexión de VPC.

service_type

String

Especifica el tipo del servicio de punto de conexión de VPC. Existen dos tipos de servicios de punto de conexión de VPC: interfaz y gateway. ● gateway: los servicios de punto de conexión de VPC de este tipo son configurados por el personal de O&M. Puede usarlos directamente sin crearlos usted mismo. ● interface: se incluyen los servicios en la nube configurados por el personal de O&M y los servicios privados creados por ustedes mismos. No es necesario crear servicios en la nube configurados por personal de O&M. Puede usarlo directamente. Puede crear un punto de conexión de VPC para acceder al gateway y la interfaz de servicios de punto de conexión de VPC.

created_at

String

Especifica el tiempo de creación del servicio de punto de conexión de VPC. El formato de hora UTC aplicado es AAAA-MMDDTHH:MM:SSZ.

updated_at

String

Especifica la hora de actualización del servicio de punto de conexión de VPC. El formato de hora UTC aplicado es AAAA-MMDDTHH:MM:SSZ.

project_id

String

ID del proyecto. Para obtener detalles sobre cómo obtener el ID de proyecto, consulte Obtención de un ID de proyecto.

Mínimo: 1

Máximo: 64

domain_id

String

ID de dominio

Mínimo: 1

Máximo: 64

ports

Array of PortList objects

Especifica los mapeos de puertos abiertos por el servicio de punto de conexión de VPC. No se permiten mapeos de puertos duplicados en el mismo servicio de punto de conexión de VPC. Si varios servicios de punto de conexión de VPC comparten un ID de puerto, las combinaciones de puertos y protocolos de servidor para todos los mapeos de puertos entre servicios de punto de conexión de VPC deben ser únicas.

tags

Array of TagList objects

Lista de etiquetas de recursos

connection_count

Integer

Especifica el número de puntos de conexión de VPC que se encuentran en estado Creando o Aceptado.

Mínimo: 0

tcp_proxy

String

Especifica si se va a transferir al servidor información del cliente, como direcciones IP de origen, números de puerto de origen e ID de marcadores. La información se puede enviar al servidor de las siguientes maneras:

  • TCP TOA: La información del cliente se coloca en el campo tcp option y se envía al servidor. Nota: TCP TOA solo está disponible cuando el recurso backend es OBS.

  • Proxy Protocol: La información del cliente se coloca en el campo tcp payload y se envía al servidor. tcp_proxy solo está disponible cuando el servidor puede analizar los campos tcp option y tcp payload. El valor puede ser uno de los siguientes:

  • close: No se transporta información de TCP TOA ni de Proxy Protocol.

  • toa_open: Se transporta información de TCP TOA.

  • proxy_open: Se transporta la información de Proxy Protocol.

  • open: Se transporta información tanto de TCP TOA como de Proxy Protocol.

  • proxy_vni: Solo se transporta información de Proxy Protocol y de Proxy VNI. close es el valor predeterminado.

error

Array of Error objects

Especifica el mensaje de error que se devuelve cuando se produce una excepción de envío de tareas.

description

String

Especifica el campo de descripción. El valor puede contener caracteres como letras y dígitos, pero no puede contener los signo menor que (<) ni signo mayor que (>).

Mínimo: 0

Máximo: 512

public_border_group

String

Especifica la información sobre Public Border Group del grupo correspondiente al servicio de punto de conexión de VPC.

enable_policy

Boolean

Especifica si la política de punto de conexión de VPC está habilitada. ● false: no se puede configurar la política de punto de conexión de VPC. ● true: Se puede configurar la política de punto de conexión de VPC.The default value is false.

Tabla 6 PortList

Parámetro

Tipo

Descripción

client_port

Integer

Especifica el puerto al que accederá un punto de conexión de VPC. Este puerto es provisto por el punto de conexión de VPC, lo que permite acceder al servicio de punto de conexión de VPC. Rango soportado: 1 a 65535.

Mínimo: 1

Máximo: 65535

Mínimo: 1

Máximo: 65535

server_port

Integer

Especifica el puerto para acceder al servicio de punto de conexión de VPC. Este puerto se asocia con recursos backend para brindar servicios de punto de conexión de VPC. Rango soportado: 1 a 65535

Mínimo: 1

Máximo: 65535

Mínimo: 1

Máximo: 65535

protocol

String

Protocolo de mapeo de puertos. Se soporta TCP.

Valor predeterminado: TCP

Tabla 7 TagList

Parámetro

Tipo

Descripción

key

String

Especifica la clave de etiqueta. Una clave de etiqueta contiene un máximo de 36 caracteres de Unicode. No puede quedar en blanco. No puede contener signos iguales (=), asteriscos (*), menos que signos (<), mayor que signos (>), barras invertidas (), comas (,), barras verticales (|), y barras (/), y los caracteres primero y último no pueden ser espacios.

Mínimo: 1

Máximo: 36

value

String

Especifica la clave de etiqueta. Un valor de etiqueta contiene un máximo de 43 caracteres y puede ser una cadena vacía. No puede contener signos iguales (=), asteriscos (*), menos que signos (<), mayor que signos (>), barras invertidas (), comas (,), barras verticales (|), y barras (/), y los caracteres primero y último no pueden ser espacios.

Mínimo: 1

Máximo: 43

Tabla 8 Error

Parámetro

Tipo

Descripción

message

String

Descripción del error de tarea

Mínimo: 0

Máximo: 1024

code

String

Código de error de una excepción de tarea.

Mínimo: 0

Máximo: 10

Ejemplo de solicitudes

Consulta de servicios de punto de conexión de VPC

GET https://{endpoint}/v1/{project_id}/vpc-endpoint-services?endpoint_service_name={endpoint_service_name}&id={id}&sort_key={sort_key}&sort_dir={sort_dir}&limit={limit}&offset={offset}&status={status}

Ejemplo de respuestas

Código de estado: 200

El servidor procesó correctamente la solicitud.

{
  "endpoint_services" : [ {
    "id" : "4189d3c2-8882-4871-a3c2-d380272eed83",
    "port_id" : "4189d3c2-8882-4871-a3c2-d380272eed88",
    "vpc_id" : "4189d3c2-8882-4871-a3c2-d380272eed80",
    "status" : "available",
    "approval_enabled" : false,
    "service_name" : "test123",
    "server_type" : "VM",
    "service_type" : "interface",
    "ports" : [ {
      "client_port" : "8080",
      "server_port" : "80",
      "protocol" : "TCP"
    }, {
      "client_port" : "8081",
      "server_port" : "80",
      "protocol" : "TCP"
    } ],
    "project_id" : "6e9dfd51d1124e8d8498dce894923a0d",
    "created_at" : "2022-04-14T09:35:47Z",
    "updated_at" : "2022-04-14T09:36:47Z",
    "public_border_group" : "br-abc-aaa1"
  } ],
  "total_count" : 1
}

Ejemplo de código del SDK

El ejemplo de código del SDK es el siguiente.

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
49
50
51
52
53
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.vpcep.v1.region.VpcepRegion;
import com.huaweicloud.sdk.vpcep.v1.*;
import com.huaweicloud.sdk.vpcep.v1.model.*;


public class ListEndpointServiceSolution {

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

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

        VpcepClient client = VpcepClient.newBuilder()
                .withCredential(auth)
                .withRegion(VpcepRegion.valueOf("cn-north-4"))
                .build();
        ListEndpointServiceRequest request = new ListEndpointServiceRequest();
        request.withEndpointServiceName("<endpoint_service_name>");
        request.withId("<id>");
        request.withStatus(ListEndpointServiceRequest.StatusEnum.fromValue("<status>"));
        request.withSortKey(ListEndpointServiceRequest.SortKeyEnum.fromValue("<sort_key>"));
        request.withSortDir(ListEndpointServiceRequest.SortDirEnum.fromValue("<sort_dir>"));
        request.withLimit(<limit>);
        request.withOffset(<offset>);
        request.withPublicBorderGroup("<public_border_group>");
        try {
            ListEndpointServiceResponse response = client.listEndpointService(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
33
34
35
36
37
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkvpcep.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.getenv("CLOUD_SDK_AK")
    sk = os.getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

    client = VpcepClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(VpcepRegion.value_of("cn-north-4")) \
        .build()

    try:
        request = ListEndpointServiceRequest()
        request.endpoint_service_name = "<endpoint_service_name>"
        request.id = "<id>"
        request.status = "<status>"
        request.sort_key = "<sort_key>"
        request.sort_dir = "<sort_dir>"
        request.limit = <limit>
        request.offset = <offset>
        request.public_border_group = "<public_border_group>"
        response = client.list_endpoint_service(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
39
40
41
42
43
44
45
46
47
48
49
50
51
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/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")

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

    client := vpcep.NewVpcepClient(
        vpcep.VpcepClientBuilder().
            WithRegion(region.ValueOf("cn-north-4")).
            WithCredential(auth).
            Build())

    request := &model.ListEndpointServiceRequest{}
	endpointServiceNameRequest:= "<endpoint_service_name>"
	request.EndpointServiceName = &endpointServiceNameRequest
	idRequest:= "<id>"
	request.Id = &idRequest
	statusRequest:= model.GetListEndpointServiceRequestStatusEnum().<STATUS>
	request.Status = &statusRequest
	sortKeyRequest:= model.GetListEndpointServiceRequestSortKeyEnum().<SORT_KEY>
	request.SortKey = &sortKeyRequest
	sortDirRequest:= model.GetListEndpointServiceRequestSortDirEnum().<SORT_DIR>
	request.SortDir = &sortDirRequest
	limitRequest:= int32(<limit>)
	request.Limit = &limitRequest
	offsetRequest:= int32(<offset>)
	request.Offset = &offsetRequest
	publicBorderGroupRequest:= "<public_border_group>"
	request.PublicBorderGroup = &publicBorderGroupRequest
	response, err := client.ListEndpointService(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

Otro más

Para obtener un ejemplo de código del SDK de más lenguajes de programación, consulta la ficha Ejemplo de código en API Explorer. El ejemplo de código del SDK se puede generar automáticamente.

Códigos de estado

Código de estado

Descripción

200

El servidor procesó correctamente la solicitud.

Códigos de error

Consulte Códigos de error.