Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-29 GMT+08:00

Criação de um canal da VPC

Função

Esta API é usada para criar um canal da VPC do APIG para seus recursos privados da VPC. Depois, ao criar uma API, você pode configurar seu serviço de back-end para usar esse canal da VPC para que o APIG possa acessar diretamente seus recursos privados da VPC.

Você pode criar no máximo 30 canais de VPC.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels

Tabela 1 Parâmetros de caminho

Parâmetro

Obrigatório

Tipo

Descrição

project_id

Sim

String

ID do projeto. Para obter detalhes sobre como obter um ID de projeto, consulte "Apêndice" > "Obtenção de um ID de projeto" neste documento.

instance_id

Sim

String

ID do gateway, que pode ser obtido a partir das informações de gateway no console do APIG.

Parâmetros de solicitação

Tabela 2 Parâmetros do cabeçalho de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

X-Auth-Token

Sim

String

Token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token.

Tabela 3 Parâmetros de corpo de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome do canal da VPC.

Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, números, hifens (-) e sublinhados (_) são permitidos.

port

Sim

Integer

Porta do host do canal da VPC.

Faixa: 1–65535.

balance_strategy

Sim

Integer

Algoritmo de distribuição.

  • 1: round robin ponderado (WRR).

  • 2: conexões mínimas ponderadas (WLC).

  • 3: hashing de origem.

  • 4: hashing de URI.

Padrão: 1

Valores de enumeração:

  • 1

  • 2

  • 3

  • 4

member_type

Sim

String

Tipo de membro do canal da VPC.

  • ip

  • ecs

Padrão: ecs

Valores de enumeração:

  • ip

  • ecs

type

Não

Integer

Tipo de canal da VPC. O tipo padrão é servidor.

  • 2: tipo de servidores.

  • 3: tipo de microserviço.

Padrão: 2

Valores de enumeração:

  • 2

  • 3

dict_code

Não

String

Código do dicionário do canal da VPC.

O valor pode conter letras, dígitos, hifens (-), sublinhados (_) e pontos (.).

Este parâmetro não é suportado atualmente.

Mínimo: 3

Máximo: 64

member_groups

Não

Array of MemberGroupCreate objects

Grupos de servidores de back-end do canal da VPC.

members

Não

Array of MemberInfo objects

Instâncias de back-end do canal da VPC.

vpc_health_config

Não

VpcHealthConfig object

Detalhes da verificação de integridade.

microservice_info

Não

MicroServiceCreate object

Tabela 4 MemberGroupCreate

Parâmetro

Obrigatório

Tipo

Descrição

member_group_name

Sim

String

Nome do grupo de servidores de back-end do canal da VPC.

member_group_remark

Não

String

Descrição do grupo de servidores de back-end.

member_group_weight

Não

Integer

Peso do grupo de servidores de back-end.

Se o grupo de servidores contiver servidores e um peso tiver sido definido para ele, o peso será usado automaticamente para atribuir pesos aos servidores desse grupo.

Mínimo: 0

Máximo: 100

dict_code

Não

String

Código de dicionário do grupo de servidores back-end.

O valor pode conter letras, dígitos, hifens (-), sublinhados (_) e pontos (.).

Atualmente, este parâmetro não é suportado.

Mínimo: 3

Máximo: 64

microservice_version

Não

String

Versão do grupo de servidores back-end. Esse parâmetro é compatível somente quando o tipo de canal da VPC é microsserviço.

Máximo: 64

microservice_port

Não

Integer

Porta do grupo de servidores back-end. Esse parâmetro é compatível somente quando o tipo de canal da VPC é microsserviço. Se o número da porta for 0, todos os endereços no grupo de servidores back-end usarão a porta de balanceamento de carga original para herdar a lógica.

Mínimo: 0

Máximo: 65535

microservice_labels

Não

Array of MicroserviceLabel objects

Tags do grupo de servidores back-end. Esse parâmetro é compatível somente quando o tipo de canal da VPC é microsserviço.

Tabela 5 MicroserviceLabel

Parâmetro

Obrigatório

Tipo

Descrição

label_name

Sim

String

Nome da tag.

Comece e termine com uma letra ou dígito. Use apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.). (Máximo de 63 caracteres.)

Mínimo: 1

Máximo: 63

label_value

Sim

String

Valor da tag.

Comece e termine com uma letra ou dígito. Use apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.). (Máximo de 63 caracteres.)

Mínimo: 1

Máximo: 63

Tabela 6 MemberInfo

Parâmetro

Obrigatório

Tipo

Descrição

host

Não

String

Endereço do servidor back-end.

Esse parâmetro é necessário quando o tipo de membro é endereço IP.

Máximo: 64

weight

Não

Integer

Peso.

Quanto maior o peso, mais solicitações um serviço de back-end receberá.

Mínimo: 0

Máximo: 10000

is_backup

Não

Boolean

Indica se o serviço de back-end é um nó em espera.

Depois de ativar esta função, o serviço de back-end funciona como um nó em espera. Funciona somente quando todos os nós não em espera estão com defeito.

Esta função é suportada somente quando seu gateway foi atualizado para a versão correspondente. Se o gateway não suportar essa função, entre em contato com o suporte técnico.

Padrão: false

member_group_name

Não

String

Nome do grupo de servidores de back-end. O grupo de servidores facilita a modificação do endereço de serviço de back-end.

status

Não

Integer

Status do servidor back-end.

  • 1: disponível

  • 2: indisponível

Valores de enumeração:

  • 1

  • 2

port

Não

Integer

Porta do servidor back-end.

Mínimo: 0

Máximo: 65535

ecs_id

Não

String

ID do servidor back-end

Esse parâmetro é necessário se o tipo de instância de back-end for ecs. O valor pode conter de 1 a 64 caracteres, incluindo letras, dígitos, hifens (-) e sublinhados (_).

Máximo: 255

ecs_name

Não

String

Nome do servidor back-end.

Esse parâmetro é necessário se o tipo de instância de back-end for ecs. O valor pode conter de 1 a 64 caracteres, incluindo letras, dígitos, hifens (-), sublinhados (_) e pontos (.).

Máximo: 64

Tabela 7 VpcHealthConfig

Parâmetro

Obrigatório

Tipo

Descrição

protocol

Sim

String

Protocolo para realizar verificações de integridade em servidores de back-end no canal da VPC.

  • TCP

  • HTTP

  • HTTPS

Valores de enumeração:

  • TCP

  • HTTP

  • HTTPS

path

Não

String

Caminho de destino para verificações de integridade. Este parâmetro é necessário se o protocolo estiver definido como http ou https.

method

Não

String

Método de solicitação para verificações de integridade.

Padrão: GET

Valores de enumeração:

  • GET

  • HEAD

port

Não

Integer

Porta de destino para verificações de integridade. Se esse parâmetro não for especificado ou definido como 0, a porta do host do canal da VPC será usada.

Se este parâmetro for definido como um valor diferente de zero, a porta correspondente será usada para verificações de integridade.

Mínimo: 0

Máximo: 65535

threshold_normal

Sim

Integer

Limite íntegro. Refere-se ao número de verificações consecutivas bem-sucedidas necessárias para que um servidor de back-end seja considerado saudável.

Mínimo: 2

Máximo: 10

threshold_abnormal

Sim

Integer

Limite não íntegro. Refere-se ao número de verificações consecutivas falhadas necessárias para que um servidor de back-end seja considerado insalubre.

Mínimo: 2

Máximo: 10

time_interval

Sim

Integer

Intervalo entre verificações consecutivas. Unidade: s. O valor deve ser maior do que o valor do tempo limite.

Mínimo: 5

Máximo: 300

http_code

Não

String

Códigos de resposta para determinar uma resposta HTTP bem-sucedida. O valor pode ser qualquer número inteiro entre 100 e 599 em um dos seguintes formatos:

  • Vários valores, por exemplo, 200, 201, 202

  • Faixa, por exemplo, 200-299

  • Vários valores e intervalos, por exemplo, 201, 202, 210-299. Este parâmetro é necessário se o protocolo estiver definido como http.

enable_client_ssl

Não

Boolean

Indica se a autenticação bidirecional deve ser ativada. Se esta função é permitida, o certificado especificado no item de configuração backend_client_certificate do gateway está usado.

Padrão: false

status

Não

Integer

Resultado da verificação de integridade.

  • 1: disponível

  • 2: indisponível

Valores de enumeração:

  • 1

  • 2

timeout

Sim

Integer

Tempo limite para determinar se uma verificação de integridade falha. Unidade: s. O valor deve ser menor que o valor de time_interval.

Mínimo: 2

Máximo: 30

Tabela 8 MicroServiceCreate

Parâmetro

Obrigatório

Tipo

Descrição

service_type

Não

String

Tipo de microsserviço.

  • CSE: centro de registro de microsserviços CSE.

  • CCE: Cloud Container Engine (CCE).

Valores de enumeração:

  • CSE

  • CCE

cse_info

Não

MicroServiceInfoCSEBase object

Detalhes do microsserviço CSE. Este parâmetro é necessário se service_type for definido como CSE.

cce_info

Não

MicroServiceInfoCCEBase object

Detalhes da carga de trabalho do CCE. Este parâmetro é necessário se service_type for definido como CCE.

Tabela 9 MicroServiceInfoCSEBase

Parâmetro

Obrigatório

Tipo

Descrição

engine_id

Sim

String

ID do mecanismo de microsserviço.

Máximo: 64

service_id

Sim

String

ID do microsserviço.

Máximo: 64

Tabela 10 MicroServiceInfoCCEBase

Parâmetro

Obrigatório

Tipo

Descrição

cluster_id

Sim

String

ID do cluster de CCE.

Máximo: 64

namespace

Sim

String

Namespace.

Máximo: 64

workload_type

Sim

String

Tipo de carga de trabalho.

  • deployment

  • statefulset

  • daemonset

Valores de enumeração:

  • deployment

  • statefulset

  • daemonset

app_name

Sim

String

Nome de aplicação.

Máximo: 64

Parâmetros de resposta

Código de status: 201

Tabela 11 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

name

String

Nome do canal da VPC.

Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, números, hifens (-) e sublinhados (_) são permitidos.

port

Integer

Porta do host do canal da VPC.

Faixa: 1–65535.

balance_strategy

Integer

Algoritmo de distribuição.

  • 1: round robin ponderado (WRR).

  • 2: conexões mínimas ponderadas (WLC).

  • 3: hashing de origem.

  • 4: hashing de URI.

Padrão: 1

Valores de enumeração:

  • 1

  • 2

  • 3

  • 4

member_type

String

Tipo de membro do canal da VPC.

  • ip

  • ecs

Padrão: ecs

Valores de enumeração:

  • ip

  • ecs

type

Integer

Tipo de canal da VPC. O tipo padrão é servidor.

  • 2: tipo de servidores.

  • 3: tipo de microserviço.

Padrão: 2

Valores de enumeração:

  • 2

  • 3

dict_code

String

Código do dicionário do canal da VPC.

O valor pode conter letras, dígitos, hifens (-), sublinhados (_) e pontos (.).

Este parâmetro não é suportado atualmente.

Mínimo: 3

Máximo: 64

create_time

String

Hora em que o canal da VPC é criado.

id

String

ID do canal da VPC.

status

Integer

Status do canal da VPC.

  • 1: normal

  • 2: anormal

Valores de enumeração:

  • 1

  • 2

member_groups

Array of MemberGroupInfo objects

Grupos de servidores back-end.

microservice_info

MicroServiceInfo object

Informações de microsserviços.

Tabela 12 MemberGroupInfo

Parâmetro

Tipo

Descrição

member_group_name

String

Nome do grupo de servidores de back-end do canal da VPC.

member_group_remark

String

Descrição do grupo de servidores de back-end.

member_group_weight

Integer

Peso do grupo de servidores de back-end.

Se o grupo de servidores contiver servidores e um peso tiver sido definido para ele, o peso será usado automaticamente para atribuir pesos aos servidores desse grupo.

Mínimo: 0

Máximo: 100

dict_code

String

Código de dicionário do grupo de servidores back-end.

O valor pode conter letras, dígitos, hifens (-), sublinhados (_) e pontos (.).

Atualmente, este parâmetro não é suportado.

Mínimo: 3

Máximo: 64

microservice_version

String

Versão do grupo de servidores back-end. Esse parâmetro é compatível somente quando o tipo de canal da VPC é microsserviço.

Máximo: 64

microservice_port

Integer

Porta do grupo de servidores back-end. Esse parâmetro é compatível somente quando o tipo de canal da VPC é microsserviço. Se o número da porta for 0, todos os endereços no grupo de servidores back-end usarão a porta de balanceamento de carga original para herdar a lógica.

Mínimo: 0

Máximo: 65535

microservice_labels

Array of MicroserviceLabel objects

Tags do grupo de servidores back-end. Esse parâmetro é compatível somente quando o tipo de canal da VPC é microsserviço.

member_group_id

String

ID do grupo de servidores back-end do canal da VPC.

create_time

String

Hora em que o grupo de servidores back-end é criado.

update_time

String

Hora em que o grupo de servidores back-end é atualizado.

Tabela 13 MicroserviceLabel

Parâmetro

Tipo

Descrição

label_name

String

Nome da tag.

Comece e termine com uma letra ou dígito. Use apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.). (Máximo de 63 caracteres.)

Mínimo: 1

Máximo: 63

label_value

String

Valor da tag.

Comece e termine com uma letra ou dígito. Use apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.). (Máximo de 63 caracteres.)

Mínimo: 1

Máximo: 63

Tabela 14 MicroServiceInfo

Parâmetro

Tipo

Descrição

id

String

ID do microsserviço.

service_type

String

Tipo de microsserviço.

  • CSE: centro de registro de microsserviços CSE.

  • CCE: Cloud Container Engine (CCE).

Valores de enumeração:

  • CSE

  • CCE

cse_info

MicroServiceInfoCSE object

Detalhes do microsserviço CSE.

cce_info

MicroServiceInfoCCE object

Detalhes do microsserviço CCE.

update_time

String

Tempo de atualização do microsserviço.

create_time

String

Tempo de criação de microsserviços.

Tabela 15 MicroServiceInfoCSE

Parâmetro

Tipo

Descrição

engine_id

String

ID do mecanismo de microsserviço.

Máximo: 64

service_id

String

ID do microsserviço.

Máximo: 64

engine_name

String

Nome do mecanismo de microsserviço.

service_name

String

Nome do microsserviço.

register_address

String

Endereço do centro de registro.

cse_app_id

String

Aplicação ao qual o microsserviço pertence.

version

String

Versão do microsserviço, que foi descartada e é refletida na versão do grupo de servidores back-end.

Máximo: 64

Tabela 16 MicroServiceInfoCCE

Parâmetro

Tipo

Descrição

cluster_id

String

ID do cluster de CCE.

Máximo: 64

namespace

String

Namespace.

Máximo: 64

workload_type

String

Tipo de carga de trabalho.

  • deployment

  • statefulset

  • daemonset

Valores de enumeração:

  • deployment

  • statefulset

  • daemonset

app_name

String

Nome de aplicação.

Máximo: 64

cluster_name

String

Nome do cluster de CCE.

Código de status: 400

Tabela 17 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 401

Tabela 18 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 403

Tabela 19 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 404

Tabela 20 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 500

Tabela 21 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Exemplo de solicitações

  • Criação de um canal da VPC do tipo de servidor

    {
      "balance_strategy" : 1,
      "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"
      } ]
    }
  • Criação de um canal da VPC do tipo de microsserviço

    {
      "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"
        }
      }
    }

Exemplo de respostas

Código de status: 201

Criado

  • Exemplo 1

    {
      "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" : "",
        "microservice_port" : 0
      }, {
        "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" : "",
        "microservice_port" : 0
      } ],
      "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" : ""
      }
    }
  • Exemplo 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 status: 400

Solicitação inválida

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

Código de status: 401

Não autorizado

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

Código de status: 403

Proibido

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

Código de status: 404

Não encontrado

{
  "error_code" : "APIG.3030",
  "error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341"
}

Código de status: 500

Erro do servidor interno

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

Códigos de status

Código de status

Descrição

201

Criado

400

Solicitação inválida

401

Não autorizado

403

Proibido

404

Não encontrado

500

Erro do servidor interno

Códigos de erro

Consulte Códigos de erro.