Creación de un punto de conexión de VPC
Función
Esta API se utiliza para crear un punto de conexión de VPC para acceder a un 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-endpoints
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
ID del proyecto. Mínimo: 1 Máximo: 64 |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
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ámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
subnet_id |
No |
String |
Nota: Este parámetro es obligatorio para crear un punto de conexión de VPC de interfaz. El ID debe ser el ID de la subred creada en la VPC especificada por vpc_id y con el formato de UUID. Para obtener más detalles, consulte el campo de id en la información de respuesta de la sección "Consulta de detalles de subred" en la Referencia de las API de Virtual Private Cloud. Este parámetro es obligatorio cuando se crea un punto de conexión de VPC para conectar un servicio de punto de conexión de VPC de interfaz. Nota: ● El bloque CIDR de subred de la VPC no puede superponerse 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 |
endpoint_service_id |
Sí |
String |
Especifica el ID del servicio de punto de conexión de VPC. Puede obtener el ID del servicio de punto de conexión de VPC a conectarse consultando la sección "Descripción general del servicio VPCEP". Mínimo: 1 Máximo: 64 |
vpc_id |
Sí |
String |
Especifica el ID de la VPC donde se encuentra el punto de conexión de 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 Elastic Cloud Server. Mínimo: 1 Máximo: 64 |
enable_dns |
No |
Boolean |
Especifica si se debe crear un nombre de dominio. ● true: Se requiere un nombre de dominio. ● false: No se requiere un nombre de dominio. El valor predeterminado es false. Nota: Cuando se crea un punto de conexión de VPC para conectar un servicio de punto de conexión de VPC de gateways, no se crea ningún nombre de dominio si enable_dns se establece en true o false. Predeterminado: false |
tags |
No |
Array of TagList objects |
Especifica la lista de etiquetas. Si no hay ninguna etiqueta en la lista, tags se toman como una matriz vacía. |
routetables |
No |
Array of strings |
Especifica los ID de las tablas de enrutamientos. Para obtener más detalles, consulte el campo de id en la información de respuesta de la sección "Consulta de un enrutamiento de VPC" en la Referencia de las API de Virtual Private Cloud. Este parámetro es obligatorio cuando se crea un punto de conexión de VPC para conectar un servicio de punto de conexión de VPC de gateway. Nota: Si este parámetro no está configurado, utilice la tabla de enrutamiento predeterminada. Mínimo: 0 Máximo: 64 Longitud del arreglo: 1 - 10 |
port_ip |
No |
String |
Especifica la dirección IP para acceder al servicio de punto de conexión de VPC asociado. Al crear un punto de conexión de VPC, puede especificar direcciones IP para acceder al servicio de punto de conexión de VPC asociado. Solo se admiten las direcciones IPv4. Este parámetro es obligatorio cuando se crea un punto de conexión de VPC para conectar un servicio de punto de conexión de VPC de interfaz. Mínimo: 1 Máximo: 128 |
whitelist |
No |
Array of strings |
Especifica listas blancas agregadas para controlar el acceso al punto de conexión de VPC. Al crear un punto de conexión de VPC, se pueden especificar direcciones IPv4 o bloques CIDR para controlar el acceso. De forma predeterminada, la lista blanca se deja en blanco. Este parámetro solo está disponible cuando se crea un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de interfaz. Mínimo: 0 Máximo: 32 Longitud del arreglo: 1 - 1000 |
enable_whitelist |
No |
Boolean |
Especifica si el control de acceso está habilitado. |
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 |
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
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID único del punto de conexión de VPC. Mínimo: 1 Máximo: 64 |
service_type |
String |
Especifica el tipo de servicio de punto de conexión de VPC al que se conecta el punto de conexión de VPC. - 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 consultar los servicios de punto de conexión de VPC públicos para ver los servicios configurados por el personal de O&M y visibles y accesibles para todos los usuarios. Se pueden crear servicios de punto de conexión de VPC de interfaz. |
status |
String |
Especifica el estado del punto de conexión de la VPC.
|
ip |
String |
Especifica la dirección IP del punto de conexión de VPC. Mínimo: 1 Máximo: 64 |
active_status |
Array of strings |
Especifica el estado de la cuenta.
|
endpoint_service_name |
String |
Especifica el nombre del servicio de punto de conexión de VPC. |
marker_id |
Integer |
Especifica el ID de paquete del punto de conexión de VPC. |
endpoint_service_id |
String |
Especifica el ID del servicio de punto de conexión de VPC. Mínimo: 1 Máximo: 64 |
enable_dns |
Boolean |
Especifica si se debe crear un nombre de dominio.
|
dns_names |
Array of strings |
Especifica el nombre de dominio para acceder al servicio de punto de conexión de VPC asociado. Este parámetro está disponible cuando enable_dns se establece en true. Mínimo: 0 Máximo: 32 |
subnet_id |
String |
Especifica el ID de la subred en la VPC especificada por vpc_id. El ID está en formato de UUID. Mínimo: 1 Máximo: 64 |
vpc_id |
String |
Especifica el ID de la VPC donde se creará el punto de conexión de VPC. Mínimo: 1 Máximo: 64 |
created_at |
String |
Especifica cuándo se creó el punto de conexión de VPC. Se utiliza el formato de hora de UTC AAAA-MM-DDTHH:MM:SSZ. |
updated_at |
String |
Especifica el tiempo de actualización del punto de conexión de VPC. Se utiliza el formato de hora de UTC AAAA-MM-DDTHH:MM:SSZ. |
project_id |
String |
Especifica el 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 |
tags |
Array of TagList objects |
Especifica la lista de etiquetas consultadas. Si no hay ninguna etiqueta coincidente, se devuelve una matriz vacía. |
whitelist |
Array of strings |
Especifica la lista blanca para controlar el acceso al punto de conexión de VPC. Si no especifica este parámetro, se devolverá una lista blanca vacía. Este parámetro solo está disponible cuando se crea un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de interfaz. Mínimo: 0 Máximo: 32 Longitud del arreglo: 1 - 1000 |
enable_whitelist |
Boolean |
Especifica si el control de acceso está habilitado.
|
routetables |
Array of strings |
Especifica los ID de las tablas de enrutamientos. Si no se especifica este parámetro, se devuelve el ID de la tabla de enrutamiento predeterminada de la VPC. Este parámetro solo está disponible cuando se crea un punto de conexión de VPC para conectarse a un servicio de punto de conexión de VPC de gateway. Mínimo: 0 Máximo: 64 |
specification_name |
String |
Especifica el nombre de las especificaciones. |
description |
String |
Proporciona la información complementaria sobre el punto de conexión de VPC. La descripción puede contener letras y dígitos. No se permiten los símbolos mayores que (<) ni menores que (>). Mínimo: 0 Máximo: 128 |
policy_statement |
Array of strings |
Este campo aparece en el cuerpo de la respuesta solo para los puntos de conexión de VPC que tengan configuradas políticas de punto de conexión de VPC y de bucket de OBS. Mínimo: 0 Máximo: 128 Longitud del arreglo: 0 - 10 |
enable_status |
String |
Especifica si un punto de conexión de VPC está disponible.
|
endpoint_pool_id |
String |
(Se descartará) Especifica el ID del clúster asociado al punto de conexión de VPC. Mínimo: 1 Máximo: 64 |
public_border_group |
String |
Especifica la información del grupo de borde público sobre el grupo correspondiente al punto de conexión de VPC. |
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
Cree un punto de conexión de VPC sin crear un nombre de dominio.
POST https://{endpoint}/v1/{project_id}/vpc-endpoints { "subnet_id" : "5d1c1d71-2613-4274-b34e-d82af550f967", "vpc_id" : "4e65f8b1-306d-4522-8ecd-aa374000e2a4", "endpoint_service_id" : "813d9300-8473-405b-bfcd-f711117bad65", "enable_dns" : "false" }
Ejemplo de las respuestas
Código de estado: 200
El servidor procesó correctamente la solicitud.
{ "id" : "492c776f-2cb9-40a2-9735-d7279ab2bbb6", "status" : "accepted", "ip" : "172.16.0.154", "tags" : [ ], "whitelist" : [ ], "marker_id" : 302010104, "active_status" : [ "active" ], "vpc_id" : "0da03835-1dcf-4361-9b87-34139d58dd59", "service_type" : "interface", "project_id" : "0605767a3300d5762fb7c0186d9e1779", "subnet_id" : "fb1b8b7e-f34c-4ff1-b3a7-221acef3b3aa", "enable_dns" : false, "created_at" : "2022-04-28T02:44:50Z", "updated_at" : "2022-04-28T02:56:15Z", "endpoint_service_id" : "8843fac2-bc01-445a-a822-c8124ff3968c", "endpoint_service_name" : "br-abc-aaa1.vm_test.8843fac2-bc01-445a-a822-c8124ff3968c", "enable_whitelist" : false, "specification_name" : "default", "endpoint_pool_id" : "501f4a3b-6f96-4309-97d1-e291b8ca5b96", "enable_status" : "enable", "public_border_group" : "center" }
Ejemplo de código del SDK
El ejemplo de código del SDK es el siguiente.
Java
Cree un punto de conexión de VPC sin crear un nombre de dominio.
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 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 CreateEndpointSolution { 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(); CreateEndpointRequest request = new CreateEndpointRequest(); CreateEndpointRequestBody body = new CreateEndpointRequestBody(); body.withEnableDns(false); body.withVpcId("4e65f8b1-306d-4522-8ecd-aa374000e2a4"); body.withEndpointServiceId("813d9300-8473-405b-bfcd-f711117bad65"); body.withSubnetId("5d1c1d71-2613-4274-b34e-d82af550f967"); request.withBody(body); try { CreateEndpointResponse response = client.createEndpoint(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
Cree un punto de conexión de VPC sin crear un nombre de dominio.
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 |
# 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 = CreateEndpointRequest() request.body = CreateEndpointRequestBody( enable_dns=False, vpc_id="4e65f8b1-306d-4522-8ecd-aa374000e2a4", endpoint_service_id="813d9300-8473-405b-bfcd-f711117bad65", subnet_id="5d1c1d71-2613-4274-b34e-d82af550f967" ) response = client.create_endpoint(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
Cree un punto de conexión de VPC sin crear un nombre de dominio.
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 |
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.CreateEndpointRequest{} enableDnsCreateEndpointRequestBody:= false subnetIdCreateEndpointRequestBody:= "5d1c1d71-2613-4274-b34e-d82af550f967" request.Body = &model.CreateEndpointRequestBody{ EnableDns: &enableDnsCreateEndpointRequestBody, VpcId: "4e65f8b1-306d-4522-8ecd-aa374000e2a4", EndpointServiceId: "813d9300-8473-405b-bfcd-f711117bad65", SubnetId: &subnetIdCreateEndpointRequestBody, } response, err := client.CreateEndpoint(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.