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

Configuração de um recurso para um gateway

Função

Esta API é usada para configurar um recurso para um gateway.

A tabela a seguir lista os recursos suportados e exemplos de configuração.

Nome de recursosDescrição de recursosExemplo de configuraçãoNome do parâmetroDescrição do parâmetroValor padrãoIntervalo de valores
ltsRelatórios de logs de acesso Shubao{"name":"lts","enable":true,"config": "{\"group_id\": ",\"topic_id\":\"\",\"log_group\":\"\",\"log_stream\":\"\"}"}(1) group_id (2) topic_id (3) log_group (4) log_stream(1) ID do grupo de log. (2) ID do fluxo de log. (3) Nome do grupo de log. (4) Nome do fluxo de log.--
ratelimitConfiguração do limite de limitação de solicitação{"name":"ratelimit","enable":true,"config": "{\"api_limits\": 500}"}api_limitsLimite de limitação de solicitações padrão para APIs. Defina este parâmetro corretamente para atender aos seus requisitos de serviço. Um pequeno valor pode constantemente estrangular seus serviços.200 chamadas/segundo1–1.000.000 chamadas/segundo
request_body_sizeConfiguração do tamanho máximo do corpo da solicitação{"name":"request_body_size","enable":true,"config": "104857600"}request_body_sizeO tamanho máximo de corpo permitido para uma solicitação.12 MB1–9536 MB
backend_timeoutConfiguração máxima de tempo limite de back-end{"name":"backend_timeout","enable":true,"config": "{"max_timeout": 500}"}max_timeoutTempo limite máximo permitido para o API Gateway solicitar o serviço de back-end.60.000 ms1–600.000 ms
app_tokenAutenticação app_token{"name":"app_token","enable":true,"config": "{\"enable\": \"on\", \"app_token_expire_time\": 3600, \"app_token_uri\": \"/v1/apigw/oauth2/token\", \"refresh_token_expire_time\": 7200}"}(1) enable (2) app_token_expire_time (3) refresh_token_expire_time (4) app_token_uri (5) app_token_key(1) Se deve habilitar esse recurso. (2) Período de validade do token de acesso. (3) Atualizar o período de validade do token. (4) URI para obter um token. (5) Chave de criptografia de token.(1) desativar (2) 3600s (3) 7200s (4) /v1/apigw/oauth2/token(1) ativar/desativar (2) 1–72.000s (3) 1–72.000s
app_api_keyAutenticação app_api_key{"name":"app_api_key","enable":true,"config": "on"}--desativarativar/desativar
app_basicAutenticação app_basic{"name":"app_basic","enable":true,"config": "on"}--desativarativar/desativar
app_secretAutenticação app_secret{"name":"app_secret","enable":true,"config": "on"}--desativarativar/desativar
app_jwtAutenticação app_jwt{"name":"app_jwt","enable":true,"config": "{\"enable\": \"on\", \"auth_header\": \"Authorization\"}"}(1) enable (2) auth_header(1) Habilitar ou não a autenticação app_jwt. (2) Cabeçalho de autenticação app_jwt.(1) desativar (2) Autorização(1) ativar/desativar
public_keyAssinaturas de back-end public_key{"name":"public_key","enable":true,"config": "{\"enable\": \"on\", \"public_key_uri_prefix\": \"/apigw/authadv/v2/public-key/\"}"}(1) enable (2) public_key_uri_prefix(1) Habilitar ou não a autenticação app_jwt. (2) Prefixo URI usado para obter a chave pública.(1) desativar (2) /apigw/authadv/v2/public-key/(1) ativar/desativar
backend_token_allowPermitir que os locatários transmitam tokens de forma transparente para o back-end{"name":"backend_token_allow","enable":true,"config": "{\"backend_token_allow_users\": [\"user_name\"]}"}backend_token_allow_usersLista branca de locatários autorizados a transmitir tokens de forma transparente para o back-end. O valor é uma expressão regular de nomes de domínio.--
backend_client_certificateAutenticação bidirecional de back-end{"name":"backend_client_certificate","enable":true,"config": "{\"enable\": \"on\",\"ca\": \"\",\"content\": \"\",\"key\": \"\"}"}(1) enable (2) ca (3) content (4) key(1) Se deve habilitar esse recurso. (2) Arquivo CA de autenticação bidirecional. (3) Arquivo de autenticação bidirecional. (4) Chave privada de autenticação bidirecional.(1) desativar(1) ativar/desativar
ssl_ciphersConjuntos de cifras HTTPS{"name":"ssl_ciphers","enable":true,"config": "config": "{\"ssl_ciphers\": [\"ECDHE-ECDSA-AES256-GCM-SHA384\"]}"}ssl_ciphersSuítes de cifras suportadas. O parâmetro ssl_ciphers não pode ficar em branco e pode conter apenas as opções na faixa de valores.-ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256
real_ip_from_xffSe o cabeçalho X-Forwarded-For deve ser usado para especificar endereços IP de origem para controle de acesso e limitação de solicitação.{"name":"real_ip_from_xff","enable": true,"config": "{\"enable\": \"on\",\"xff_index\": 1}"}(1) enable (2) xff_index(1) Se deve habilitar esse recurso. (2) Índice do endereço IP de origem no cabeçalho X-Forwarded-For. (Números negativos são permitidos e –1 é o último índice.)(1) desativar (2) -1(1) ativar/desativar (2) Valor Int32 válido
app_routeSe permitir o acesso ao endereço IP.{"name":"app_route","enable":true,"config": "on"}--desativarativar/desativar
vpc_name_modifiableModificação do nome do canal do balanceamento de carga{"name":"vpc_name_modifiable","enable":true,"config": "on"}--desativarativar/desativar
default_group_host_trustlistAcesso ao grupo DEFAULT a partir de endereços IP que não são endereços de acesso de entrada do gateway atual{"name":"default_group_host_trustlist","enable": true,"config": "{\"enable\":\"on\",\"hosts\":[\"123.2.2.2\",\"202.2.2.2\"]}"}(1) enable (2) hosts(1) Se deve habilitar esse recurso. (2) Endereços IP que não são endereços de acesso de entrada do gateway atual.-(1) ativar/desativar
throttle_strategySe a limitação de solicitação deve ser habilitada.{"name":"throttle_strategy","enable":true,"config": "{\"enable\": \"on\",\"strategy\": \"local\"}"}(1) enable (2) strategy(1) Se deve habilitar esse recurso. (2) Modo de limitação de solicitação.(1) desativar(1) ativar/desativar (2) cluster/local
custom_logSe imprimir cabeçalhos de solicitação personalizados, cadeias de consulta e cookies em logs.{"name":"custom_log","enable":true,"config": "{\"custom_logs\":[{\"location\":\"header\",\"name\":\"a1234\"}]}"}(1) custom_logs (2) location (3) name(1) Registros personalizados. (2) Localização. (3) Nome.-(1) Máximo 10 itens. (2) cabeçalho/consulta/cookie
real_ip_header_getterSe usar um cabeçalho personalizado para obter endereços IP de origem.{"name":"real_ip_header_getter","enable":true,"config": "{\"enable\": \"on\",\"header_getter\": \"header:testIP\"}"}(1) enable (2) header_getter(1) Se deve habilitar esse recurso. (2) Cabeçalho personalizado para obtenção de endereços IP de origem.(1) desativar(1) ativar/desativar
policy_cookie_paramSuportar cookies em condições de política de back-end.{"name":"policy_cookie_param","enable":true,"config": "on"}--desativarativar/desativar

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/features

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 de recursos.

Mínimo: 1

Máximo: 64

enable

Sim

Boolean

Indica se o recurso deve ser ativada.

config

Não

String

Configuração de parâmetros.

Parâmetros de resposta

Código de status: 201

Tabela 4 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

id

String

ID da recursos.

name

String

Nome de recursos.

Mínimo: 1

Máximo: 64

enable

Boolean

Indica se o recurso deve ser ativada.

config

String

Configuração de parâmetros.

instance_id

String

ID do gateway.

update_time

String

Tempo de atualização do recurso.

Código de status: 400

Tabela 5 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 6 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 7 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 8 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 9 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

{
  "name" : "app_api_key",
  "config" : "on",
  "enable" : true
}

Exemplo de respostas

Código de status: 201

Criado

{
  "config" : "on",
  "enable" : true,
  "id" : "db9a9260cd3e4a16a9b5747a65d3ffaa",
  "instance_id" : "eddc4d25480b4cd6b512f270a1b8b341",
  "name" : "app_api_key",
  "update_time" : "2020-08-24T01:17:31.041984021Z"
}

Código de status: 400

Solicitação inválida

{
  "error_code" : "APIG.2000",
  "error_msg" : "unrecognized feature app-api-key"
}

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.