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
| 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
| 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. |
| 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. Padrão: 1 Valores de enumeração: |
| member_type | Sim | String | Tipo de membro do canal da VPC. Padrão: ecs Valores de enumeração: |
| type | Não | Integer | Tipo de canal da VPC. O tipo padrão é servidor. Padrão: 2 Valores de enumeração: |
| 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 | - |
| 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. |
| 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 |
| 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. Valores de enumeração: |
| 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 |
| 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. Valores de enumeração: |
| 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: |
| 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: |
| 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. Valores de enumeração: |
| 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 |
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| service_type | Não | String | Tipo de microsserviço. Valores de enumeração: |
| 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. |
| 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 |
Parâmetros de resposta
Código de status: 201
| 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. Padrão: 1 Valores de enumeração: |
| member_type | String | Tipo de membro do canal da VPC. Padrão: ecs Valores de enumeração: |
| type | Integer | Tipo de canal da VPC. O tipo padrão é servidor. Padrão: 2 Valores de enumeração: |
| 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. Valores de enumeração: |
| member_groups | Array of MemberGroupInfo objects | Grupos de servidores back-end. |
| microservice_info | MicroServiceInfo object | Informações de microsserviços. |
| 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. |
| 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 |
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | String | ID do microsserviço. |
| service_type | String | Tipo de microsserviço. Valores de enumeração: |
| 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. |
| 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 |
| 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. Valores de enumeração: |
| app_name | String | Nome de aplicação. Máximo: 64 |
| cluster_name | String | Nome do cluster de CCE. |
Código de status: 400
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 401
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 403
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 404
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 500
| 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
-
{ "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" : "" } } -
{ "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.