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.
Actualización más reciente 2023-03-29 GMT+08:00

Actualización de un canal de VPC

Función

Esta API se utiliza para actualizar los parámetros de un canal VPC.

Si el canal de VPC se sobrescribe con una lista de instancias de backend vacía, se eliminarán todas las instancias de backend existentes.

Si el canal de VPC se sobrescribe con una lista de grupos de servidores backend vacía, se eliminarán todos los grupos de servidores backend existentes.

URI

PUT /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id}

Tabla 1 Parámetros de path

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener detalles sobre cómo obtener un ID de proyecto, consulte "Apéndice" > "Obtención de un ID de proyecto" en este documento.

instance_id

String

Gateway ID, que se puede obtener de la información de gateway en la consola APIG.

vpc_channel_id

String

ID de canal de VPC.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Token de usuario. Se puede obtener llamando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es un token.

Tabla 3 Parámetros de body de solicitud

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre del canal de VPC.

Puede contener de 3 a 64 caracteres, empezando por una letra. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_).

port

Integer

Puerto de host del canal VPC.

Rango: 1–65535.

balance_strategy

Integer

Algoritmo de distribución.

  • 1: Weighted round robin (WRR).

  • 2: Weighted least connections (WLC).

  • 3: Source hashing.

  • 4: URI hashing.

Predeterminado: 1

Valores de enumeración:

  • 1

  • 2

  • 3

  • 4

member_type

String

Tipo de miembro del canal VPC.

  • ip

  • ecs

Predeterminado: ecs

Valores de enumeración:

  • ip

  • ecs

type

No

Integer

Tipo de canal de VPC. El tipo predeterminado es servidor.

  • 2: Tipo de servidor.

  • 3: Tipo de microservicio.

Predeterminado: 2

Valores de enumeración:

  • 2

  • 3

dict_code

No

String

Código de diccionario del canal VPC.

El valor puede contener letras, dígitos, guiones (-), guiones bajos (_), y puntos (.).

Este parámetro no se admite actualmente.

Mínimo:3

Máximo: 64

member_groups

No

Array of MemberGroupCreate objects

Grupos de servidores backend del canal VPC.

members

No

Array of MemberInfo objects

Las instancias de backend del canal VPC.

vpc_health_config

No

VpcHealthConfig object

Detalles de la comprabación de salud.

microservice_info

No

MicroServiceCreate object

Tabla 4 MemberGroupCreate

Parámetro

Obligatorio

Tipo

Descripción

member_group_name

String

Nombre del grupo de servidores backend del canal VPC.

member_group_remark

No

String

Descripción del grupo de servidores backend.

member_group_weight

No

Integer

Peso del grupo de servidores backend.

Si el grupo de servidores contiene servidores y se ha establecido un peso para él, el peso se utiliza automáticamente para asignar pesos a los servidores de este grupo.

Mínimo: 0

Máximo: 100

dict_code

No

String

Código de diccionario del grupo de servidores backend.

El valor puede contener letras, dígitos, guiones (-), guiones bajos (_), y puntos (.).

Actualmente, este parámetro no es compatible.

Mínimo:3

Máximo: 64

microservice_version

No

String

Versión del grupo de servidores backend. Este parámetro solo se admite cuando el tipo de canal de VPC es microservicio.

Máximo: 64

microservice_port

No

Integer

Puerto del grupo de servidores de backend. Este parámetro solo se admite cuando el tipo de canal de VPC es microservicio. Si el número de puerto es 0, todas las direcciones en el grupo de servidores backend utilizan el puerto de equilibrio de carga original para heredar la lógica.

Mínimo: 0

Máximo: 65535

microservice_labels

No

Array of MicroserviceLabel objects

Etiquetas del grupo de servidores de backend. Este parámetro solo se admite cuando el tipo de canal de VPC es microservicio.

Tabla 5 MicroserviceLabel

Parámetro

Obligatorio

Tipo

Descripción

label_name

String

Nombre de la etiqueta.

Comience y termine con una letra o dígito. Utilice solo letras, dígitos, guiones (-), guiones bajos (_), y puntos (.). (Máx. 63 caracteres.)

Mínimo: 1

Máximo 63

label_value

String

Valor de la etiqueta.

Comience y termine con una letra o dígito. Utilice solo letras, dígitos, guiones (-), guiones bajos (_), y puntos (.). (Máx. 63 caracteres.)

Mínimo: 1

Máximo 63

Tabla 6 MemberInfo

Parámetro

Obligatorio

Tipo

Descripción

host

No

String

Dirección del servidor backend.

Este parámetro es necesario cuando el tipo de miembro es dirección IP.

Máximo: 64

weight

No

Integer

Peso.

Cuanto mayor sea el peso, más solicitudes recibirá un servicio de back-end.

Mínimo: 0

Máximo: 10000

is_backup

No

Boolean

Indica si el servicio backend es un nodo en espera.

Después de habilitar esta función, el servicio de backend sirve como nodo en espera. Funciona solo cuando todos los nodos no en espera están defectuosos.

Esta función solo se admite cuando el gateway se ha actualizado a la versión correspondiente. Si su gateway no admite esta función, póngase en contacto con el soporte técnico.

Predeterminado: false

member_group_name

No

String

Nombre del grupo del servidor de backend. El grupo de servidores facilita la modificación de la dirección del servicio de back-end.

status

No

Integer

Estado del servidor backend.

  • 1: disponible

  • 2: no disponible

Valores de enumeración:

  • 1

  • 2

port

No

Integer

Puerto de servidor de backend.

Mínimo: 0

Máximo: 65535

ecs_id

No

String

ID del servidor de backend.

Este parámetro es necesario si el tipo de instancia de backend es ecs. El valor puede contener de 1 a 64 caracteres, incluyendo letras, dígitos, guiones (-) y guiones bajos (_).

Máximo: 255

ecs_name

No

String

Nombre del servidor de backend.

Este parámetro es necesario si el tipo de instancia de backend es ecs. El valor puede contener de 1 a 64 caracteres, incluyendo letras, dígitos, guiones (-), guiones bajos (_), y puntos (.).

Máximo: 64

Tabla 7 VpcHealthConfig

Parámetro

Obligatorio

Tipo

Descripción

protocol

String

Protocolo para realizar comprobaciones de estado en servidores backend en el canal VPC.

  • TCP

  • HTTP

  • HTTPS

Valores de enumeración:

  • TCP

  • HTTP

  • HTTPS

path

No

String

Ruta de destino para las comprobaciones de estado. Este parámetro es necesario si el protocolo se establece en http o https.

method

No

String

Método de solicitud de comprobación de salud.

Predeterminado: GET

Valores de enumeración:

  • GET

  • HEAD

port

No

Integer

Puerto de destino para las comprobaciones de estado. Si este parámetro no se especifica o se establece en 0, se utiliza el puerto de host del canal VPC.

Si este parámetro se establece en un valor distinto de cero, se utiliza el puerto correspondiente para las comprobaciones de estado.

Mínimo: 0

Máximo: 65535

threshold_normal

Integer

Umbral saludable. Se refiere al número de comprobaciones exitosas consecutivas requeridas para que un servidor backend se considere saludable.

Mínimo: 2

Máximo: 10

threshold_abnormal

Integer

Umbral poco saludable. Se refiere al número de comprobaciones consecutivas fallidas requeridas para que un servidor de back-end se considere insalubre.

Mínimo: 2

Máximo: 10

time_interval

Integer

Intervalo entre comprobaciones consecutivas. Unidad: s. El valor debe ser mayor que el valor del tiempo de espera.

Mínimo: 5

Máximo: 300

http_code

No

String

Códigos de respuesta para determinar una respuesta HTTP correcta. El valor puede ser cualquier entero dentro de 100–599 en uno de los siguientes formatos:

  • Múltiples valores, por ejemplo, 200,201,202

  • Rango, por ejemplo, 200-299

  • Múltiples valores e intervalos, por ejemplo, 201,202,210-299. Este parámetro es necesario si el protocolo se establece en http.

enable_client_ssl

No

Boolean

Indica si se debe habilitar la autenticación bidireccional. Si esta función está habilitada, se utiliza el certificado especificado en el elemento de configuración backend_client_certificate de gateway.

Predeterminado: false

status

No

Integer

Resultado de comprobación de salud

  • 1: disponible

  • 2: no disponible

Valores de enumeración:

  • 1

  • 2

timeout

Integer

Tiempo de espera para determinar si una comprobación de estado falla. Unidad: s. El valor debe ser menor que el valor de time_interval.

Mínimo: 2

Máximo: 30

Tabla 8 MicroServiceCreate

Parámetro

Obligatorio

Tipo

Descripción

service_type

No

String

Tipo de microservicio.

  • CSE: Centro de registro de microservicios CSE.

  • CCE: Cloud Container Engine (CCE).

Valores de enumeración:

  • CSE

  • CCE

cse_info

No

MicroServiceInfoCSEBase object

Detalles del microservicio CSE. Este parámetro es necesario si service_type se establece en CSE.

cce_info

No

MicroServiceInfoCCEBase object

Detalles de la carga de trabajo de CCE. Este parámetro es necesario si service_type se establece en CCE.

Tabla 9 MicroServiceInfoCSEBase

Parámetro

Obligatorio

Tipo

Descripción

engine_id

String

ID del motor de microservicio.

Máximo: 64

service_id

String

ID de microservicio.

Máximo: 64

Tabla 10 MicroServiceInfoCCEBase

Parámetro

Obligatorio

Tipo

Descripción

cluster_id

String

ID del clúster de CCE.

Máximo: 64

namespace

String

Espacio de nombres.

Máximo: 64

workload_type

String

Tipo de carga de trabajo.

  • deployment

  • statefulset

  • daemonset

Valores de enumeración:

  • deployment

  • statefulset

  • daemonset

app_name

String

Nombre de la aplicación.

Máximo: 64

Parámetros de respuesta

Código de estado: 200

Tabla 11 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

name

String

Nombre del canal de VPC.

Puede contener de 3 a 64 caracteres, empezando por una letra. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_).

port

Integer

Puerto de host del canal VPC.

Rango: 1–65535.

balance_strategy

Integer

Algoritmo de distribución.

  • 1: Weighted round robin (WRR).

  • 2: Weighted least connections (WLC).

  • 3: Source hashing.

  • 4: URI hashing.

Predeterminado: 1

Valores de enumeración:

  • 1

  • 2

  • 3

  • 4

member_type

String

Tipo de miembro del canal VPC.

  • ip

  • ecs

Predeterminado: ecs

Valores de enumeración:

  • ip

  • ecs

type

Integer

Tipo de canal de VPC. El tipo predeterminado es servidor.

  • 2: Tipo de servidor.

  • 3: Tipo de microservicio.

Predeterminado: 2

Valores de enumeración:

  • 2

  • 3

dict_code

String

Código de diccionario del canal VPC.

El valor puede contener letras, dígitos, guiones (-), guiones bajos (_), y puntos (.).

Este parámetro no se admite actualmente.

Mínimo: 3

Máximo: 64

create_time

String

Hora en la que se crea el canal VPC.

id

String

ID de canal de VPC.

status

Integer

Estado del canal de VPC.

  • 1: normal

  • 2: anormal

Valores de enumeración:

  • 1

  • 2

member_groups

Array of MemberGroupInfo objects

Grupos de servidores backend.

microservice_info

MicroServiceInfo object

Información de microservicio.

Tabla 12 MemberGroupInfo

Parámetro

Tipo

Descripción

member_group_name

String

Nombre del grupo de servidores backend del canal VPC.

member_group_remark

String

Descripción del grupo de servidores backend.

member_group_weight

Integer

Peso del grupo de servidores backend.

Si el grupo de servidores contiene servidores y se ha establecido un peso para él, el peso se utiliza automáticamente para asignar pesos a los servidores de este grupo.

Mínimo: 0

Máximo: 100

dict_code

String

Código de diccionario del grupo de servidores backend.

El valor puede contener letras, dígitos, guiones (-), guiones bajos (_), y puntos (.).

Actualmente, este parámetro no es compatible.

Mínimo:3

Máximo: 64

microservice_version

String

Versión del grupo de servidores backend. Este parámetro solo se admite cuando el tipo de canal de VPC es microservicio.

Máximo: 64

microservice_port

Integer

Puerto del grupo de servidores de backend. Este parámetro solo se admite cuando el tipo de canal de VPC es microservicio. Si el número de puerto es 0, todas las direcciones en el grupo de servidores backend utilizan el puerto de equilibrio de carga original para heredar la lógica.

Mínimo: 0

Máximo: 65535

microservice_labels

Array of MicroserviceLabel objects

Etiquetas del grupo de servidores de backend. Este parámetro solo se admite cuando el tipo de canal de VPC es microservicio.

member_group_id

String

ID del grupo de servidores backend del canal VPC.

create_time

String

Hora en la que se crea el grupo de servidores de backend.

update_time

String

Hora en la que se actualiza el grupo de servidores de backend.

Tabla 13 MicroserviceLabel

Parámetro

Tipo

Descripción

label_name

String

Nombre de la etiqueta.

Comience y termine con una letra o dígito. Utilice solo letras, dígitos, guiones (-), guiones bajos (_), y puntos (.). (Máx. 63 caracteres.)

Mínimo: 1

Máximo 63

label_value

String

Valor de la etiqueta.

Comience y termine con una letra o dígito. Utilice solo letras, dígitos, guiones (-), guiones bajos (_), y puntos (.). (Máx. 63 caracteres.)

Mínimo: 1

Máximo 63

Tabla 14 MicroServiceInfo

Parámetro

Tipo

Descripción

id

String

ID de microservicio.

service_type

String

Tipo de microservicio.

  • CSE: Centro de registro de microservicios CSE.

  • CCE: Cloud Container Engine (CCE).

Valores de enumeración:

  • CSE

  • CCE

cse_info

MicroServiceInfoCSE object

Detalles del microservicio CSE.

cce_info

MicroServiceInfoCCE object

Detalles del microservicio CCE.

update_time

String

Tiempo de actualización del microservicio.

create_time

String

Tiempo de creación de microservicios.

Tabla 15 MicroServiceInfoCSE

Parámetro

Tipo

Descripción

engine_id

String

ID del motor de microservicio.

Máximo: 64

service_id

String

ID de microservicio.

Máximo: 64

engine_name

String

Nombre del motor de microservicios.

service_name

String

Nombre del microservicio.

register_address

String

Dirección del centro de registro.

cse_app_id

String

App a la que pertenece el microservicio.

version

String

Versión de microservicio, que se ha descartado y se refleja en la versión del grupo de servidores de backend.

Máximo: 64

Tabla 16 MicroServiceInfoCCE

Parámetro

Tipo

Descripción

cluster_id

String

ID del clúster de CCE.

Máximo: 64

namespace

String

Espacio de nombres.

Máximo: 64

workload_type

String

Tipo de carga de trabajo.

  • deployment

  • statefulset

  • daemonset

Valores de enumeración:

  • deployment

  • statefulset

  • daemonset

app_name

String

Nombre de la aplicación.

Máximo: 64

cluster_name

String

Nombre del clúster de CCE.

Código de estado: 400

Tabla 17 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 401

Tabla 18 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 403

Tabla 19 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 404

Tabla 20 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 500

Tabla 21 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Solicitudes de ejemplo

  • Actualización de un canal de VPC del tipo de servidor

    {
      "balance_strategy" : 2,
      "member_type" : "ip",
      "name" : "VPC_demo",
      "port" : 22,
      "type" : 2,
      "vpc_health_config" : {
        "http_code" : "200",
        "path" : "/vpc/demo",
        "port" : 22,
        "protocol" : "http",
        "threshold_abnormal" : 5,
        "threshold_normal" : 2,
        "time_interval" : 10,
        "timeout" : 5,
        "enable_client_ssl" : false
      },
      "member_groups" : [ {
        "member_group_name" : "test",
        "member_group_weight" : 1,
        "member_group_remark" : "remark"
      }, {
        "member_group_name" : "default",
        "member_group_weight" : 2,
        "member_group_remark" : "remark"
      } ],
      "members" : [ {
        "host" : "192.168.0.5",
        "weight" : 1,
        "member_group_name" : "test"
      }, {
        "host" : "192.168.1.124",
        "weight" : 2,
        "member_group_name" : "default"
      } ]
    }
  • Actualización de un canal de VPC del tipo de microservicio

    {
      "balance_strategy" : 1,
      "member_type" : "ip",
      "name" : "VPC_demo",
      "port" : 22,
      "type" : 3,
      "vpc_health_config" : {
        "http_code" : "200",
        "path" : "/vpc/demo",
        "port" : 22,
        "protocol" : "http",
        "threshold_abnormal" : 5,
        "threshold_normal" : 2,
        "time_interval" : 10,
        "timeout" : 5,
        "enable_client_ssl" : false
      },
      "member_groups" : [ {
        "member_group_name" : "test",
        "member_group_weight" : 1,
        "member_group_remark" : "remark",
        "microservice_version" : "v1",
        "microservice_port" : 80
      }, {
        "member_group_name" : "default",
        "member_group_weight" : 2,
        "member_group_remark" : "remark",
        "microservice_version" : "v2",
        "microservice_port" : 80,
        "microservice_labels" : [ {
          "label_name" : "cluster_id",
          "label_value" : "c429700c-5dc4-482a-9c0e-99f6c0635113"
        } ]
      } ],
      "members" : [ {
        "host" : "192.168.0.5",
        "weight" : 1,
        "member_group_name" : "test"
      }, {
        "host" : "192.168.1.124",
        "weight" : 2,
        "member_group_name" : "default"
      } ],
      "microservice_info" : {
        "service_type" : "CCE",
        "cce_info" : {
          "cluster_id" : "ab1485b4f91b45abbcd560be591f7309",
          "namespace" : "default",
          "workload_type" : "deployment",
          "app_name" : "testapp"
        }
      }
    }

Ejemplo de respuestas

Código de estado: 200

OK

  • Ejemplo 1

    {
      "name" : "VPC_demo",
      "port" : 22,
      "balance_strategy" : 2,
      "member_type" : "ip",
      "dict_code" : "",
      "create_time" : "2020-07-23T07:11:57Z",
      "id" : "18174f5f4f1a4dc29f33aeadd9788e5f",
      "status" : 1,
      "member_groups" : [ {
        "member_group_id" : "c1ce135c705c4066853a0460b318fe16",
        "member_group_name" : "test",
        "member_group_weight" : 1,
        "member_group_remark" : "remark",
        "create_time" : "2020-07-23T07:11:57.244829604Z",
        "update_time" : "2020-07-23T07:11:57.244829604Z"
      }, {
        "member_group_id" : "c1ce135c705c4066853a0460b318fe17",
        "member_group_name" : "default",
        "member_group_weight" : 2,
        "member_group_remark" : "remark",
        "create_time" : "2020-07-23T07:11:57.244829604Z",
        "update_time" : "2020-07-23T07:11:57.244829604Z"
      } ],
      "type" : 2,
      "microservice_info" : {
        "id" : "",
        "project_id" : "",
        "instance_id" : "",
        "service_type" : "",
        "cse_info" : {
          "cse_app_id" : "",
          "engine_id" : "",
          "engine_name" : "",
          "register_address" : "",
          "service_id" : "",
          "service_name" : ""
        },
        "cce_info" : {
          "cluster_id" : "",
          "cluster_name" : "",
          "namespace" : "",
          "workload_type" : "",
          "app_name" : ""
        },
        "create_time" : "",
        "update_time" : ""
      }
    }
  • Ejemplo 2

    {
      "name" : "VPC_demo",
      "id" : "105c6902457144a4820dff8b1ad63331",
      "balance_strategy" : 1,
      "dict_code" : "",
      "create_time" : "2020-07-23T07:11:57.244829604Z",
      "member_type" : "ip",
      "port" : 22,
      "status" : 1,
      "member_groups" : [ {
        "member_group_id" : "c1ce135c705c4066853a0460b318fe16",
        "member_group_name" : "test",
        "member_group_weight" : 1,
        "member_group_remark" : "remark",
        "create_time" : "2020-07-23T07:11:57.244829604Z",
        "update_time" : "2020-07-23T07:11:57.244829604Z",
        "microservice_version" : "v1",
        "microservice_port" : 80
      }, {
        "member_group_id" : "c1ce135c705c4066853a0460b318fe17",
        "member_group_name" : "default",
        "member_group_weight" : 2,
        "member_group_remark" : "remark",
        "create_time" : "2020-07-23T07:11:57.244829604Z",
        "update_time" : "2020-07-23T07:11:57.244829604Z",
        "microservice_version" : "v2",
        "microservice_port" : 80,
        "microservice_labels" : [ {
          "label_name" : "cluster_id",
          "label_value" : "c429700c-5dc4-482a-9c0e-99f6c0635113"
        } ]
      } ],
      "type" : 3,
      "microservice_info" : {
        "id" : "9483afa235be45158a70c19ab817ac65",
        "project_id" : "73d69ae0cfcf460190522d06b60f05ad",
        "instance_id" : "f0fa1789-3b76-433b-a787-9892951c620e",
        "service_type" : "CCE",
        "cse_info" : {
          "cse_app_id" : "",
          "engine_id" : "",
          "engine_name" : "",
          "register_address" : "",
          "service_id" : "",
          "service_name" : ""
        },
        "cce_info" : {
          "cluster_id" : "ab1485b4f91b45abbcd560be591f7309",
          "cluster_name" : "cce-test",
          "namespace" : "default",
          "workload_type" : "deployment",
          "app_name" : "testapp"
        },
        "create_time" : "2020-07-23T07:11:57.244829604Z",
        "update_time" : "2020-07-23T07:11:57.244829604Z"
      }
    }

Código de estado: 400

Bad Request

{
  "error_code" : "APIG.2001",
  "error_msg" : "The request parameters must be specified, parameter name:members"
}

Código de estado: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

Código de estado: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

Código de estado: 404

Not Found

{
  "error_code" : "APIG.3023",
  "error_msg" : "The VPC channel does not exist,id:56a7d7358e1b42459c9d730d65b14e59"
}

Código de estado: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

Códigos de estado

Código de estado

Descripción

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Códigos de error

Consulte Códigos de error.