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/ Direct Connect/ Referencia de la API/ Las API/ Gateway virtual/ Actualización de un gateway virtual
Actualización más reciente 2024-09-14 GMT+08:00

Actualización de un gateway virtual

Función

Esta API se utiliza para actualizar un gateway virtual.

Método de invocación

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

URI

PUT /v3/{project_id}/dcaas/virtual-gateways/{virtual_gateway_id}

Tabla 1 Parámetros de enrutamiento

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

Especifica el ID del proyecto.

virtual_gateway_id

String

Especifica el ID del gateway virtual.

Parámetros de solicitud

Tabla 2 Parámetros de cabecera de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

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

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

virtual_gateway

No

UpdateVirtualGateway object

Especifica el gateway virtual que se va a actualizar.

Tabla 4 UpdateVirtualGateway

Parámetro

Obligatorio

Tipo

Descripción

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

No

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.

Longitud del arreglo: 1 - 200

local_ep_group_ipv6

No

Array of strings

Muestra las subredes IPv6 a las que se puede acceder mediante el gateway virtual. Por lo general, las subredes son las de la VPC asociada con el gateway virtual.

Longitud del arreglo: 1 - 50

Parámetros de respuesta

Código de estado: 200

Tabla 5 Parámetros del cuerpo de respuesta

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.

Tabla 6 VirtualGateway

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

Tabla 7 Etiqueta

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

Actualizar el nombre y la descripción de un gateway virtual y cambiar su subred IPv4 a 192.168.3.0/24

PUT https://{dc_endpoint}/v3/0605768a3300d5762f82c01180692873/dcaas/virtual-gateways/20082c1b-3c99-48d8-8e8c-116af5d7e9f0

{
  "virtual_gateway" : {
    "name" : "update-vgw-c7b22",
    "description" : "",
    "local_ep_group" : [ "192.168.3.0/24" ]
  }
}

Ejemplo de las respuestas

Código de estado: 200

Aceptar

  • Se actualiza el gateway virtual asociado con una VPC.
    {
      "virtual_gateway" : {
        "id" : "20082c1b-3c99-48d8-8e8c-116af5d7e9f0",
        "name" : "update-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.3.0/24" ],
        "enterprise_project_id" : "0",
        "public_border_group" : "center"
      },
      "request_id" : "765f7aaf8f2edd0e719de564ef72e2de"
    }

Ejemplo de código del SDK

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

Java

Actualizar el nombre y la descripción de un gateway virtual y cambiar su subred IPv4 a 192.168.3.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
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 UpdateVirtualGatewaySolution {

    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();
        UpdateVirtualGatewayRequest request = new UpdateVirtualGatewayRequest();
        UpdateVirtualGatewayRequestBody body = new UpdateVirtualGatewayRequestBody();
        List<String> listVirtualGatewayLocalEpGroup = new ArrayList<>();
        listVirtualGatewayLocalEpGroup.add("192.168.3.0/24");
        UpdateVirtualGateway virtualGatewaybody = new UpdateVirtualGateway();
        virtualGatewaybody.withName("update-vgw-c7b22")
            .withDescription("")
            .withLocalEpGroup(listVirtualGatewayLocalEpGroup);
        body.withVirtualGateway(virtualGatewaybody);
        request.withBody(body);
        try {
            UpdateVirtualGatewayResponse response = client.updateVirtualGateway(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

Actualizar el nombre y la descripción de un gateway virtual y cambiar su subred IPv4 a 192.168.3.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
# 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 = UpdateVirtualGatewayRequest()
        listLocalEpGroupVirtualGateway = [
            "192.168.3.0/24"
        ]
        virtualGatewaybody = UpdateVirtualGateway(
            name="update-vgw-c7b22",
            description="",
            local_ep_group=listLocalEpGroupVirtualGateway
        )
        request.body = UpdateVirtualGatewayRequestBody(
            virtual_gateway=virtualGatewaybody
        )
        response = client.update_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

Actualizar el nombre y la descripción de un gateway virtual y cambiar su subred IPv4 a 192.168.3.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
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.UpdateVirtualGatewayRequest{}
	var listLocalEpGroupVirtualGateway = []string{
        "192.168.3.0/24",
    }
	nameVirtualGateway:= "update-vgw-c7b22"
	descriptionVirtualGateway:= ""
	virtualGatewaybody := &model.UpdateVirtualGateway{
		Name: &nameVirtualGateway,
		Description: &descriptionVirtualGateway,
		LocalEpGroup: &listLocalEpGroupVirtualGateway,
	}
	request.Body = &model.UpdateVirtualGatewayRequestBody{
		VirtualGateway: virtualGatewaybody,
	}
	response, err := client.UpdateVirtualGateway(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

Aceptar

Códigos de error

Consulte Códigos de error.