Creación de un gateway virtual
Función
Esta API se utiliza para crear un gateway virtual.
Método de invocación
Para obtener más información, consulte Invocación a las API.
URI
POST /v3/{project_id}/dcaas/virtual-gateways
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
Especifica el ID del proyecto. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
String |
Especifica el token de usuario. Para obtener el token, consulte la sección "Obtención del token de usuario" en la Referencia de las API de Identity and Access Management. El token es el valor de X-Subject-Token en el encabezado de respuesta. Mínimo: 0 Máximo: 10240 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
virtual_gateway |
No |
CreateVirtualGateway object |
Especifica los parámetros para crear un gateway virtual. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
vpc_id |
Sí |
String |
Especifica el ID de la VPC con la que está asociada el gateway virtual. |
name |
No |
String |
Especifica el nombre del gateway virtual. Mínimo: 0 Máximo: 64 |
description |
No |
String |
Proporciona la información complementaria sobre el gateway virtual. Mínimo: 0 Máximo: 128 |
local_ep_group |
Sí |
Array of strings |
Muestra las subredes IPv4 a las que se puede acceder a través del gateway virtual. Generalmente, la lista contiene los bloques CIDR de subred de la VPC asociada. |
local_ep_group_ipv6 |
No |
Array of strings |
Especifica las subredes IPv6 conectadas por el gateway virtual, que suele ser los bloques CIDR de una VPC. Este es un campo reservado. |
bgp_asn |
No |
Integer |
Especifica el número del sistema autónomo (ASN) BGP local del gateway virtual. Mínimo: 1 Máximo: 4294967295 |
enterprise_project_id |
No |
String |
Especifica el ID del proyecto de empresa al que pertenece el gateway virtual. Mínimo: 36 Máximo: 36 |
tags |
No |
Array of Tag objects |
Especifica las etiquetas. Longitud del arreglo: 0 - 10 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
key |
Sí |
String |
Especifica la clave de etiqueta. La clave puede contener un máximo de 36 caracteres de Unicode, incluidos letras, dígitos, guiones (-) y guiones bajos (_). Mínimo: 0 Máximo: 36 |
value |
No |
String |
Especifica el valor de etiqueta. El valor puede contener un máximo de 43 caracteres de Unicode, incluidos letras, dígitos, guiones (-), guiones bajos (_), y puntos (.). Mínimo: 0 Máximo: 43 |
Parámetros de respuesta
Código de estado: 201
Parámetro |
Tipo |
Descripción |
---|---|---|
virtual_gateway |
VirtualGateway object |
Especifica los parámetros para crear un gateway virtual. |
request_id |
String |
Especifica el ID de la solicitud. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID del gateway virtual. |
vpc_id |
String |
Especifica el ID de la VPC conectada por el gateway virtual. |
tenant_id |
String |
Especifica el ID del proyecto al que pertenece la instancia. Mínimo: 32 Máximo: 32 |
name |
String |
Especifica el nombre del gateway virtual. Mínimo: 0 Máximo: 64 |
description |
String |
Proporciona la información complementaria sobre el gateway virtual. Mínimo: 0 Máximo: 128 |
type |
String |
Especifica el tipo del gateway virtual. El valor solo puede ser default. Predeterminado: default |
local_ep_group |
Array of strings |
Especifica las subredes IPv4 conectadas por el gateway virtual, que suele ser los bloques CIDR de una VPC. |
local_ep_group_ipv6 |
Array of strings |
Especifica las subredes IPv6 conectadas por el gateway virtual, que suele ser los bloques CIDR de una VPC. Este es un campo reservado. |
admin_state_up |
Boolean |
Especifica el estado administrativo, que puede ser true o false. Predeterminado: true |
status |
String |
Especifica el estado del gateway virtual, que puede ser ACTIVE, DOWN, BUILD, ERROR, PENDING_CREATE, PENDING_UPDATE o PENDING_DELETE. |
bgp_asn |
Integer |
Especifica el ASN de BGP local del gateway virtual. Mínimo: 1 Máximo: 4294967295 |
enterprise_project_id |
String |
Especifica el ID del proyecto de empresa al que pertenece el gateway virtual. Mínimo: 36 Máximo: 36 |
device_id |
String |
Especifica el ID del dispositivo al que pertenece la interfaz virtual. |
redundant_device_id |
String |
Especifica el ID del dispositivo redundante. |
public_border_group |
String |
Especifica el grupo de bordes públicos de la AZ, que indica si el sitio es un sitio HomeZones. |
tags |
Array of Tag objects |
Especifica las etiquetas. Longitud del arreglo: 0 - 10 |
Parámetro |
Tipo |
Descripción |
---|---|---|
key |
String |
Especifica la clave de etiqueta. La clave puede contener un máximo de 36 caracteres de Unicode, incluidos letras, dígitos, guiones (-) y guiones bajos (_). Mínimo: 0 Máximo: 36 |
value |
String |
Especifica el valor de etiqueta. El valor puede contener un máximo de 43 caracteres de Unicode, incluidos letras, dígitos, guiones (-), guiones bajos (_), y puntos (.). Mínimo: 0 Máximo: 43 |
Ejemplo de las solicitudes
- Creación de un gateway virtual que se utilizará para acceder a una VPC, con el ASN de BGP local establecido en 64512 y la subred IPv4 en 192.168.1.0/24
POST https://{dc_endpoint}/v3/0605768a3300d5762f82c01180692873/dcaas/virtual-gateways { "virtual_gateway" : { "name" : "vgw-c7b22", "description" : "", "vpc_id" : "6592c28e-95d7-4b0a-9f61-004fdf03420c", "bgp_asn" : 64512, "local_ep_group" : [ "192.168.1.0/24" ] } }
Ejemplo de las respuestas
Código de estado: 201
Creado
- Se crea el gateway virtual para acceder a la VPC
{ "virtual_gateway" : { "id" : "20082c1b-3c99-48d8-8e8c-116af5d7e9f0", "name" : "vgw-c7b22", "description" : "", "tenant_id" : "0605768a3300d5762f82c01180692873", "vpc_id" : "6592c28e-95d7-4b0a-9f61-004fdf03420c", "device_id" : "26.151.63.100", "redundant_device_id" : "26.152.128.20", "type" : "default", "status" : "ACTIVE", "admin_state_up" : true, "bgp_asn" : 64512, "local_ep_group" : [ "192.168.1.0/24" ], "enterprise_project_id" : "0", "public_border_group" : "center" } }
Ejemplo de código del SDK
El ejemplo de código del SDK es el siguiente.
Java
- Creación de un gateway virtual que se utilizará para acceder a una VPC, con el ASN de BGP local establecido en 64512 y la subred IPv4 en 192.168.1.0/24
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
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.dc.v3.region.DcRegion; import com.huaweicloud.sdk.dc.v3.*; import com.huaweicloud.sdk.dc.v3.model.*; import java.util.List; import java.util.ArrayList; public class CreateVirtualGatewaySolution { 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); DcClient client = DcClient.newBuilder() .withCredential(auth) .withRegion(DcRegion.valueOf("<YOUR REGION>")) .build(); CreateVirtualGatewayRequest request = new CreateVirtualGatewayRequest(); CreateVirtualGatewayRequestBody body = new CreateVirtualGatewayRequestBody(); List<String> listVirtualGatewayLocalEpGroup = new ArrayList<>(); listVirtualGatewayLocalEpGroup.add("192.168.1.0/24"); CreateVirtualGateway virtualGatewaybody = new CreateVirtualGateway(); virtualGatewaybody.withVpcId("6592c28e-95d7-4b0a-9f61-004fdf03420c") .withName("vgw-c7b22") .withDescription("") .withLocalEpGroup(listVirtualGatewayLocalEpGroup) .withBgpAsn(64512); body.withVirtualGateway(virtualGatewaybody); request.withBody(body); try { CreateVirtualGatewayResponse response = client.createVirtualGateway(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()); } } }
- Creación de un gateway virtual que se conectará a un router empresarial y establecer el ASN de BGP en 64512
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
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.dc.v3.region.DcRegion; import com.huaweicloud.sdk.dc.v3.*; import com.huaweicloud.sdk.dc.v3.model.*; public class CreateVirtualGatewaySolution { 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); DcClient client = DcClient.newBuilder() .withCredential(auth) .withRegion(DcRegion.valueOf("<YOUR REGION>")) .build(); CreateVirtualGatewayRequest request = new CreateVirtualGatewayRequest(); CreateVirtualGatewayRequestBody body = new CreateVirtualGatewayRequestBody(); CreateVirtualGateway virtualGatewaybody = new CreateVirtualGateway(); virtualGatewaybody.withName("vgw-er") .withDescription("") .withBgpAsn(64512); body.withVirtualGateway(virtualGatewaybody); request.withBody(body); try { CreateVirtualGatewayResponse response = client.createVirtualGateway(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 gateway virtual que se utilizará para acceder a una VPC, con el ASN de BGP local establecido en 64512 y la subred IPv4 en 192.168.1.0/24
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
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkdc.v3.region.dc_region import DcRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkdc.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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = DcClient.new_builder() \ .with_credentials(credentials) \ .with_region(DcRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateVirtualGatewayRequest() listLocalEpGroupVirtualGateway = [ "192.168.1.0/24" ] virtualGatewaybody = CreateVirtualGateway( vpc_id="6592c28e-95d7-4b0a-9f61-004fdf03420c", name="vgw-c7b22", description="", local_ep_group=listLocalEpGroupVirtualGateway, bgp_asn=64512 ) request.body = CreateVirtualGatewayRequestBody( virtual_gateway=virtualGatewaybody ) response = client.create_virtual_gateway(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
- Creación de un gateway virtual que se conectará a un router empresarial y establecer el ASN de BGP en 64512
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 huaweicloudsdkdc.v3.region.dc_region import DcRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkdc.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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = DcClient.new_builder() \ .with_credentials(credentials) \ .with_region(DcRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateVirtualGatewayRequest() virtualGatewaybody = CreateVirtualGateway( name="vgw-er", description="", bgp_asn=64512 ) request.body = CreateVirtualGatewayRequestBody( virtual_gateway=virtualGatewaybody ) response = client.create_virtual_gateway(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 gateway virtual que se utilizará para acceder a una VPC, con el ASN de BGP local establecido en 64512 y la subred IPv4 en 192.168.1.0/24
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" dc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/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") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := dc.NewDcClient( dc.DcClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateVirtualGatewayRequest{} var listLocalEpGroupVirtualGateway = []string{ "192.168.1.0/24", } nameVirtualGateway:= "vgw-c7b22" descriptionVirtualGateway:= "" bgpAsnVirtualGateway:= int32(64512) virtualGatewaybody := &model.CreateVirtualGateway{ VpcId: "6592c28e-95d7-4b0a-9f61-004fdf03420c", Name: &nameVirtualGateway, Description: &descriptionVirtualGateway, LocalEpGroup: listLocalEpGroupVirtualGateway, BgpAsn: &bgpAsnVirtualGateway, } request.Body = &model.CreateVirtualGatewayRequestBody{ VirtualGateway: virtualGatewaybody, } response, err := client.CreateVirtualGateway(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
- Creación de un gateway virtual que se conectará a un router empresarial y establecer el ASN de BGP en 64512
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
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" dc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/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") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := dc.NewDcClient( dc.DcClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateVirtualGatewayRequest{} nameVirtualGateway:= "vgw-er" descriptionVirtualGateway:= "" bgpAsnVirtualGateway:= int32(64512) virtualGatewaybody := &model.CreateVirtualGateway{ Name: &nameVirtualGateway, Description: &descriptionVirtualGateway, BgpAsn: &bgpAsnVirtualGateway, } request.Body = &model.CreateVirtualGatewayRequestBody{ VirtualGateway: virtualGatewaybody, } response, err := client.CreateVirtualGateway(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 |
---|---|
201 |
Creado |
Códigos de error
Consulte Códigos de error.