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 uma política de limitação de solicitações

Função

Depois que uma API fica on-line, o sistema anexa uma política de limitação de solicitações a ela por padrão. O provedor de API pode alterar a política de limitação de solicitações com base nos recursos de serviço e na carga da API. Uma política de limitação de solicitações restringe o número máximo de vezes que uma API pode ser chamada dentro de um período especificado.

URI

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

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

app_call_limits

Não

Integer

Número máximo de vezes que a API pode ser acessada por uma aplicação no mesmo período. O valor desse parâmetro não pode exceder o limite de chamada do usuário. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

name

Sim

String

Solicitar nome da política de limitação. Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, dígitos e sublinhados (_) são permitidos.

time_unit

Sim

String

Unidade de tempo para limitar o número de chamadas de API.

Valores de enumeração:

  • SECOND

  • MINUTE

  • HOUR

  • DAY

remark

Não

String

Descrição da política de limitação de solicitações, que pode conter no máximo 255 caracteres.

api_call_limits

Sim

Integer

Número máximo de vezes que uma API pode ser acessada em um período especificado. O valor deste parâmetro não pode exceder o limite padrão 200 TPS. Você pode alterar o limite padrão para atender aos requisitos de serviço. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

type

Não

Integer

Tipo da política de limitação de solicitação.

  • 1: baseado em API, limitando o número máximo de vezes que uma única API vinculada à política pode ser chamada dentro do período especificado.

  • 2: API compartilhada, limitando o número máximo de vezes que todas as APIs vinculadas à política podem ser chamadas dentro do período especificado.

Valores de enumeração:

  • 1

  • 2

enable_adaptive_control

Não

String

Indica se deve ser ativada a limitação de solicitações dinâmicas.

  • TRUE

  • FALSE

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

user_call_limits

Não

Integer

Número máximo de vezes que a API pode ser acessada por um usuário no mesmo período. O valor deste parâmetro não pode exceder o máximo solicitações de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

time_interval

Sim

Integer

Período de tempo para limitar o número de chamadas de API. Esse parâmetro se aplica a cada limite de chamada de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

ip_call_limits

Não

Integer

Número máximo de vezes que a API pode ser acessada por um endereço IP no mesmo período. O valor desse parâmetro não pode exceder o limite de chamadas da API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

Parâmetros de resposta

Código de status: 201

Tabela 4 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

app_call_limits

Integer

Número máximo de vezes que a API pode ser acessada por uma aplicação no mesmo período. O valor desse parâmetro não pode exceder o limite de chamada do usuário. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

name

String

Solicitar nome da política de limitação. Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, dígitos e sublinhados (_) são permitidos.

time_unit

String

Unidade de tempo para limitar o número de chamadas de API.

Valores de enumeração:

  • SECOND

  • MINUTE

  • HOUR

  • DAY

remark

String

Descrição da política de limitação de solicitações, que pode conter no máximo 255 caracteres.

api_call_limits

Integer

Número máximo de vezes que uma API pode ser acessada em um período especificado. O valor deste parâmetro não pode exceder o limite padrão 200 TPS. Você pode alterar o limite padrão para atender aos requisitos de serviço. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

type

Integer

Tipo da política de limitação de solicitação.

  • 1: baseado em API, limitando o número máximo de vezes que uma única API vinculada à política pode ser chamada dentro do período especificado.

  • 2: API compartilhada, limitando o número máximo de vezes que todas as APIs vinculadas à política podem ser chamadas dentro do período especificado.

Valores de enumeração:

  • 1

  • 2

enable_adaptive_control

String

Indica se deve ser ativada a limitação de solicitações dinâmicas.

  • TRUE

  • FALSE

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

user_call_limits

Integer

Número máximo de vezes que a API pode ser acessada por um usuário no mesmo período. O valor deste parâmetro não pode exceder o máximo solicitações de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

time_interval

Integer

Período de tempo para limitar o número de chamadas de API. Esse parâmetro se aplica a cada limite de chamada de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

ip_call_limits

Integer

Número máximo de vezes que a API pode ser acessada por um endereço IP no mesmo período. O valor desse parâmetro não pode exceder o limite de chamadas da API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo.

id

String

ID da política de limitação de solicitações.

bind_num

Integer

Número de APIs às quais a política de limitação de solicitações foi vinculada.

is_inclu_special_throttle

Integer

Indica se uma configuração de limitação de solicitação excluída foi criada.

  • 1: sim

  • 2: não

Valores de enumeração:

  • 1

  • 2

create_time

String

Tempo de criação.

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: 500

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.

Exemplo de solicitações

{
  "api_call_limits" : 800,
  "app_call_limits" : 300,
  "enable_adaptive_control" : "FALSE",
  "ip_call_limits" : 600,
  "name" : "throttle_demo",
  "remark" : "Total: 800 calls/second; user: 500 calls/second; app: 300 calls/second; IP address: 600 calls/second",
  "time_interval" : 1,
  "time_unit" : "SECOND",
  "type" : 1,
  "user_call_limits" : 500
}

Exemplo de respostas

Código de status: 201

Criado

{
  "name" : "throttle_demo",
  "create_time" : "2020-07-31T08:44:02.205366118Z",
  "remark" : "Total: 800 calls/second; user: 500 calls/second; app: 300 calls/second; IP address: 600 calls/second",
  "type" : 1,
  "time_interval" : 1,
  "ip_call_limits" : 600,
  "app_call_limits" : 300,
  "time_unit" : "SECOND",
  "api_call_limits" : 800,
  "id" : "3437448ad06f4e0c91a224183116e965",
  "user_call_limits" : 500,
  "enable_adaptive_control" : "FALSE",
  "bind_num" : 0,
  "is_inclu_special_throttle" : 2
}

Código de status: 400

Solicitação inválida

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation"
}

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: 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

500

Erro do servidor interno

Códigos de erro

Consulte Códigos de erro.