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/ Creación de un servicio de punto de conexión de VPC
Actualización más reciente 2024-09-14 GMT+08:00

Creación de un servicio de punto de conexión de VPC

Función

Esta API se utiliza para crear un servicio de punto de conexión de VPC. Otros usuarios pueden crear un punto de conexión de VPC para conectarse al servicio de punto de conexión de VPC.

Nota: Esta API es asincrónica. Si se realiza correctamente, se devuelve el código de estado 200, que indica que la solicitud se ha entregado correctamente. El sistema tarda de 1 a 2 minutos en aprovisionar un servicio de punto de conexión de VPC. Puede ver el resultado de la creación consultando los detalles del servicio 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

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

Tabla 1 Parámetros de enrutamiento

Parámetro

Obligatorio

Tipo

Descripción

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

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Especifica el token de usuario. Es una respuesta a la API para obtener un token de usuario. Esta API es la única que no requiere autenticación. El valor de X-Subject-Token en el encabezado de respuesta es el valor de token.

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

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

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 UUID. El valor puede ser:

  • ID del puerto de la dirección IP privada de un balanceador de carga (recomendado). Para obtener más detalles, consulte la sección "Consulta de detalles de un balanceador de carga" en la Referencia de las API de Elastic Load Balance.

  • ID de NIC de una dirección IP de ECS. Para obtener más detalles, consulte el campo port_id en los parámetros de respuesta de la sección "Consulta de las NIC de un ECS" en la Referencia de las API de Elastic Cloud Server.

  • ID de NIC del servidor virtual para el que se ha configurado la dirección IP virtual (descartó). Notas:

  • No se puede crear un servicio de punto de conexión de VPC en una VPC cuyo bloque CIDR se superpone con 198.19.128.0/17.

  • La dirección de destino del enrutamiento personalizado en la tabla de enrutamiento de VPC no puede coincidir con 198.19.128.0/17.

Mínimo: 1

Máximo: 64

service_name

No

String

Especifica el nombre del servicio de punto de conexión de VPC. El nombre puede contener un máximo de 16 caracteres, incluidos letras, dígitos, guiones bajos (_) y guiones (-).

  • Si no especifica este parámetro, el nombre del servicio de punto de conexión de la VPC estará en formato regionName.serviceId:

  • Si especifica un valor válido, el nombre del servicio de punto de conexión de VPC tendrá el siguiente formato: regionNameserviceNameserviceId.

Mínimo: 0

Máximo: 16

vpc_id

String

Especifica el ID de la VPC donde se encuentra el recurso backend del servicio de punto de conexión de la VPC. Para obtener más detalles, consulte el campo de id en la información de respuesta de la sección "Consulta de detalles de VPC" en la Referencia de las API de Virtual Private Cloud.

Mínimo: 1

Máximo: 64

approval_enabled

No

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. El valor predeterminado es true.

Predeterminado: true

service_type

No

String

Especifica el tipo del servicio de punto de conexión de VPC. Solo sus servicios privados pueden configurarse en servicios de punto de conexión de VPC de interfaz. Existen dos tipos de servicios de punto de conexión de VPC: interfaz y gateway.

  • gateway: Indica los servicios de punto de conexión de VPC configurados por el personal de O&M. Puede usarlos directamente sin crearlos usted mismo.

  • interface: indica los servicios en la nube configurados por el personal de O&M y los servicios privados creados por ustedes. Puede utilizar directamente los servicios en la nube configurados por el personal de O&M sin crearlos usted mismo. Puede consultar los servicios de punto de conexión públicos de VPC para ver los servicios de punto de conexión de VPC visibles y accesibles para todos los usuarios y configurados por el personal de O&M. Se pueden crear puntos de conexión de VPC para conectarse a servicios de puntos de conexión de VPC de gateway y de interfaz.

Predeterminado: interface

server_type

String

Especifica el tipo de recurso.

  • VM: indica un servidor en la nube.

  • VIP: indica una dirección IP virtual. (Este valor ha sido descartado. Se recomienda LB)

  • LB: indica un balanceador de carga que funciona bien para servicios de alto tráfico que requieren alta confiabilidad y rendimiento de recuperación ante desastres (DR).

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. Se puede agregar un máximo de 200 mapeos de puertos a la vez.

tcp_proxy

No

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.

Valor predeterminado: close

tags

No

Array of TagList objects

Lista de etiquetas de recursos. Se pueden agregar un máximo de 10 etiquetas a un servicio de punto de conexión de VPC.

description

No

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

enable_policy

No

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. El valor predeterminado es false.

Predeterminado: false

Tabla 4 PortList

Parámetro

Obligatorio

Tipo

Descripción

client_port

No

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

No

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

No

String

Protocolo de mapeo de puertos. Se soporta TCP.

Predeterminado: TCP

Tabla 5 TagList

Parámetro

Obligatorio

Tipo

Descripción

key

No

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

No

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

Parámetros de respuesta

Código de estado: 200

Tabla 6 Parámetros del cuerpo de respuesta

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 UUID. El valor puede ser:

  • LB: indica el ID del puerto de la dirección IP privada de un balanceador de carga (recomendado).

  • VM: indica el ID de NIC de una dirección IP de ECS.

  • VIP: indica el ID de NIC del servidor virtual para el que se configura la dirección IP virtual. (Este valor ha sido descartado. Se recomienda LB)

Mínimo: 1

Máximo: 64

service_name

String

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

Mínimo: 0

Máximo: 128

server_type

String

Especifica el tipo de recurso.

  • VM: servidor en nube

  • VIP: dirección IP virtual

  • LB: balanceador de carga mejorado

vpc_id

String

Especifica el ID de la VPC donde se encuentra el recurso backend del servicio de punto de conexión de la VPC.

Mínimo: 1

Máximo: 64

pool_id

String

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

approval_enabled

Boolean

Especifica si se requiere la aprobación de la conexión.

  • false: no se requiere la aprobación de conexión. El punto de conexión de VPC creada se encuentra en estado accepted.

  • true: Se requiere la aprobación de la conexió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 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 pudo crear 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: Indica los servicios de punto de conexión de VPC configurados por el personal de O&M. Puede usarlos directamente sin crearlos usted mismo.

  • interface: indica los servicios en la nube configurados por el personal de O&M y los servicios privados creados por ustedes. No puede configurar estos servicios en la nube, pero puede utilizarlos. Se pueden crear puntos de conexión de VPC para conectarse a servicios de puntos de conexión de VPC de gateway y de interfaz.

Mínimo: 1

Máximo: 16

created_at

String

Especifica cuándo se creó el servicio de punto de conexión de VPC. Se utiliza el formato de hora UTC AAAA-MMDDTHH:MM:SSZ.

updated_at

String

Especifica cuándo se actualizó el servicio de punto de conexión de VPC. Se utiliza el formato de hora UTC AAAA-MMDDTHH:MM:SSZ.

project_id

String

Especifica el ID del proyecto.

Mínimo: 1

Máximo: 64

ports

Array of PortList objects

Especifica los mapeos de puertos abiertos para 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 port_id, debe ser único server_port o protocol, o ambos server_port y protocol de cada uno de estos servicios de punto de conexión.

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.

tags

Array of TagList objects

Especifica etiquetas de recursos.

description

String

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

Mínimo: 0

Máximo: 512

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. El valor predeterminado es false.

Tabla 7 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.

Predeterminado: TCP

Tabla 8 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

Ejemplo de las solicitudes

Creación de un servicio de punto de conexión de VPC de interfaz (establezca approval_enabled a false, service type a VM, client_port a 8080 y a 8081, server_port a 90 y a 80 y protocol a TCP)

POST https://{endpoint}/v1/{project_id}/vpc-endpoint-services

{
  "port_id" : "4189d3c2-8882-4871-a3c2-d380272eed88",
  "vpc_id" : "4189d3c2-8882-4871-a3c2-d380272eed80",
  "approval_enabled" : false,
  "service_type" : "interface",
  "server_type" : "VM",
  "ports" : [ {
    "client_port" : 8080,
    "server_port" : 90,
    "protocol" : "TCP"
  }, {
    "client_port" : 8081,
    "server_port" : 80,
    "protocol" : "TCP"
  } ]
}

Ejemplo de las respuestas

Código de estado: 200

El servidor procesó correctamente la solicitud.

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

Ejemplo de código del SDK

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

Java

Creación de un servicio de punto de conexión de VPC de interfaz (establezca approval_enabled a false, service type a VM, client_port a 8080 y a 8081, server_port a 90 y a 80 y protocol a TCP)

 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
56
57
58
59
60
61
62
63
64
65
66
67
68
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.*;

import java.util.List;
import java.util.ArrayList;

public class CreateEndpointServiceSolution {

    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();
        CreateEndpointServiceRequest request = new CreateEndpointServiceRequest();
        CreateEndpointServiceRequestBody body = new CreateEndpointServiceRequestBody();
        List<PortList> listbodyPorts = new ArrayList<>();
        listbodyPorts.add(
            new PortList()
                .withClientPort(8080)
                .withServerPort(90)
                .withProtocol(PortList.ProtocolEnum.fromValue("TCP"))
        );
        listbodyPorts.add(
            new PortList()
                .withClientPort(8081)
                .withServerPort(80)
                .withProtocol(PortList.ProtocolEnum.fromValue("TCP"))
        );
        body.withPorts(listbodyPorts);
        body.withServerType(CreateEndpointServiceRequestBody.ServerTypeEnum.fromValue("VM"));
        body.withServiceType("interface");
        body.withApprovalEnabled(false);
        body.withVpcId("4189d3c2-8882-4871-a3c2-d380272eed80");
        body.withPortId("4189d3c2-8882-4871-a3c2-d380272eed88");
        request.withBody(body);
        try {
            CreateEndpointServiceResponse response = client.createEndpointService(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

Creación de un servicio de punto de conexión de VPC de interfaz (establezca approval_enabled a false, service type a VM, client_port a 8080 y a 8081, server_port a 90 y a 80 y protocol a TCP)

 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
# 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 = CreateEndpointServiceRequest()
        listPortsbody = [
            PortList(
                client_port=8080,
                server_port=90,
                protocol="TCP"
            ),
            PortList(
                client_port=8081,
                server_port=80,
                protocol="TCP"
            )
        ]
        request.body = CreateEndpointServiceRequestBody(
            ports=listPortsbody,
            server_type="VM",
            service_type="interface",
            approval_enabled=False,
            vpc_id="4189d3c2-8882-4871-a3c2-d380272eed80",
            port_id="4189d3c2-8882-4871-a3c2-d380272eed88"
        )
        response = client.create_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

Creación de un servicio de punto de conexión de VPC de interfaz (establezca approval_enabled a false, service type a VM, client_port a 8080 y a 8081, server_port a 90 y a 80 y protocol a TCP)

 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
56
57
58
59
60
61
62
63
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.CreateEndpointServiceRequest{}
	clientPortPorts:= int32(8080)
	serverPortPorts:= int32(90)
	protocolPorts:= model.GetPortListProtocolEnum().TCP
	clientPortPorts1:= int32(8081)
	serverPortPorts1:= int32(80)
	protocolPorts1:= model.GetPortListProtocolEnum().TCP
	var listPortsbody = []model.PortList{
        {
            ClientPort: &clientPortPorts,
            ServerPort: &serverPortPorts,
            Protocol: &protocolPorts,
        },
        {
            ClientPort: &clientPortPorts1,
            ServerPort: &serverPortPorts1,
            Protocol: &protocolPorts1,
        },
    }
	serviceTypeCreateEndpointServiceRequestBody:= "interface"
	approvalEnabledCreateEndpointServiceRequestBody:= false
	request.Body = &model.CreateEndpointServiceRequestBody{
		Ports: listPortsbody,
		ServerType: model.GetCreateEndpointServiceRequestBodyServerTypeEnum().VM,
		ServiceType: &serviceTypeCreateEndpointServiceRequestBody,
		ApprovalEnabled: &approvalEnabledCreateEndpointServiceRequestBody,
		VpcId: "4189d3c2-8882-4871-a3c2-d380272eed80",
		PortId: "4189d3c2-8882-4871-a3c2-d380272eed88",
	}
	response, err := client.CreateEndpointService(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.