Limitação de solicitação 2.0
Uma política de limitação de solicitação 2.0 limita o número de vezes que uma API pode ser chamada dentro de um período de tempo específico. A limitação baseada em parâmetro, básica e excluída é suportada.
- Limitação básica
Limite as solicitações por API, usuário, aplicação ou endereço IP de origem. Essa função é equivalente a uma política de limitação de solicitações tradicional (consulte Limitação de solicitação), mas é incompatível com ela.
- Limitação baseada em parâmetros
Solicitações de aceleração com base em cabeçalhos, parâmetro de caminho, método, cadeias de consulta ou parâmetros do sistema.
- Limitação excluída
Solicitações de limitação com base em aplicações ou locatários específicos.
Diretrizes de uso
- Uma política tradicional de limitação de solicitações torna-se inválida se uma política 2.0 de limitação de solicitações estiver vinculada à mesma API que a tradicional.
- Você pode definir um máximo de 100 regras de limitação baseadas em parâmetros.
- O conteúdo da política não pode exceder os caracteres 65.535.
Descrição do parâmetro
Parâmetro |
Descrição |
---|---|
Throttling |
É recomendado a limitação de alto desempenho.
|
Policy Type |
|
Period |
Por quanto tempo você deseja limitar o número de chamadas de API. Este parâmetro pode ser usado em conjunto com os seguintes parâmetros:
|
Max. API Requests |
O número máximo de vezes que cada API vinculada pode ser chamada dentro do período especificado. Este parâmetro deve ser utilizado em conjunto com o Period. |
Max. User Requests |
O número máximo de vezes que cada API vinculada pode ser chamada por um usuário dentro do período especificado. Para APIs com autenticação do IAM, a limitação é baseada em um código de projeto; para APIs com autenticação de aplicação, a limitação é baseada em um código de conta. Para obter detalhes sobre o ID da conta e o ID do projeto, consulte a descrição sobre Excluded Tenants nesta tabela.
|
Max. Credential Requests |
O número máximo de vezes que cada API vinculada pode ser chamada por uma credencial dentro do período especificado. Esse limite se aplica apenas a APIs acessadas por meio de autenticação de aplicação.
|
Max. IP Address Requests |
O número máximo de vezes que cada API vinculada pode ser chamada por um endereço IP dentro do período especificado.
|
Parameter-based Throttling |
Habilitar ou desabilitar a limitação baseada em parâmetro. Depois que essa função é ativada, as solicitações de API são reduzidas com base nos parâmetros definidos. |
Parameters |
Defina parâmetros para correspondência de regras.
|
Rules |
Defina regras de limitação. Uma regra consiste em condições, uma limitação de solicitações de API e um período. Para adicionar mais regras, clique em Add Rule.
Por exemplo, configure a limitação baseada em parâmetro da seguinte forma: adicione o parâmetro Host e especifique o local como header; adicione a condição Host = www.abc.com, e defina o limite de limitação como 10 e o período como 60s. Para APIs cujo parâmetro Host no cabeçalho da solicitação é igual a www.abc.com, elas não podem ser chamadas novamente uma vez chamadas 10 vezes em 60s. |
Excluded Throttling |
Ativar ou desativar a limitação excluída. Depois que essa função é ativada, os limites para locatários e aplicações excluídas substituem o Max. User Requests e Max. App Requests definidas na área Basic Throttling. |
Excluded Tenants |
Tenant ID: um ID de conta ou um ID de projeto.
Threshold: o número máximo de vezes que um locatário específico pode acessar uma API dentro do período especificado. O limite não pode exceder o valor de Max. API Requests na área Basic Throttling. |
Excluded Apps |
Selecione uma aplicação e especifique o número máximo de vezes que a aplicação pode acessar uma API dentro do período especificado. O limite não pode exceder o valor de Max. API Requests na área Basic Throttling. |
Exemplo de script
{ "scope": "basic", "default_interval": 60, "default_time_unit": "second", "api_limit": 100, "app_limit": 50, "user_limit": 50, "ip_limit": 20, "specials": [ { "type": "app", "policies": [ { "key": "e9230d70c749408eb3d1e838850cdd23", "limit": 10 } ] }, { "type": "user", "policies": [ { "key": "878f1b87f71c40a7a15db0998f358bb9", "limit": 10 } ] } ], "algorithm": "counter", "parameters": [ { "id": "3wuj354lpptv0toe0", "value": "reqPath", "type": "path", "name": "reqPath" }, { "id": "53h7e7j11u38l3ocp", "value": "method", "type": "method", "name": "method" }, { "id": "vv502bnb6g40td8u0", "value": "Host", "type": "header", "name": "Host" } ], "rules": [ { "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]", "rule_name": "u8mb", "time_unit": "second", "interval": 2, "limit": 5 } ] }