As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Práticas recomendadas de limite de taxa
Este tópico fornece orientação sobre como projetar, implantar e operar limites de taxa de forma eficaz em seu gateway.
Padrões de design
- Acesso hierárquico
-
Crie vários limites de taxa com a mesma chave de dimensão (
$.context.jwt.subou$.context.jwt.tier), mas entradas diferentes para cada nível. Use entradas exatas para usuários premium conhecidos e uma*entrada como nível padrão. - Defesa em profundidade
-
Limites de taxa de camada em várias granularidades. Por exemplo, combine um limite de RPS por alvo (protege a capacidade de back-end) com um limite de RPM por chamador (evita abusos individuais) e um limite de token por ferramenta (controla o custo).
- Infraestrutura como código com BatchPut
-
Use
BatchPutGatewayRateLimitspara gerenciar declarativamente sua configuração de limite de taxa. O batch put usa semântica aprimorada, tornando seguro executar repetidamente a partir de CI/CD pipelines ou modelos de infraestrutura. - Implantação gradual
-
Comece com limites de tarifas generosos e os restrinja ao longo do tempo com base nos padrões de tráfego observados. Monitore o atributo de amplitude do
aws.agentcore.gateway.throttle.customer.decisionOTEL e as taxas de resposta de 429 antes de reduzir os limites. - Bloco de emergência
-
Use
rate: 0entradas para bloquear chamadores, alvos ou ferramentas específicos durante um incidente. O bloqueio entra em vigor quando a propagação é concluída (até 30 segundos).
Orientação de seleção de chaves de dimensão
Escolha chaves de dimensão que produzam um número limitado e previsível de faixas de taxas:
| Chave de dimensão | Cardinalidade | Recomendação |
|---|---|---|
|
|
Baixo (conjunto conhecido) |
Excelente escolha. Use para proteção por alvo. |
|
|
Low-medium |
Boa opção para gateways MCP com conjuntos de ferramentas conhecidos. |
|
|
Baixo (conjunto conhecido) |
Excelente para gateways de inferência. |
|
|
Medium-high |
Bom para limites por usuário. Cardinalidade limitada por sua base de usuários. |
|
|
Baixo |
Excelente para cotas por equipe. |
|
|
Médio |
Bom para limites por função em IAM-authenticated configurações. |
|
|
Ilimitado |
Não use. Cria um bucket exclusivo por token. |
|
|
Ilimitado |
Não use. Cria um bucket exclusivo por solicitação. |
Atenção
Chaves de dimensão ilimitadas (como declarações com escopo $.context.jwt.jti de solicitação) criam um número infinito de faixas de tarifas. Isso desperdiça memória, degrada o desempenho e desativa efetivamente a limitação de taxa, pois cada solicitação recebe seu próprio bucket e nunca é limitada.
Considerações sobre limite de taxa de token
Os limites da taxa de token exigem consideração especial devido ao seu modelo de fiscalização baseado no orçamento:
-
Utilização do orçamento: o gateway estima os tokens de entrada antes do encaminhamento e registra o uso real após a resposta. Short-lived as rajadas podem exceder temporariamente a taxa configurada.
-
Opções de transmissão: para solicitações de conclusão de chat de streaming (
/v1/chat/completions), o gateway é adicionado automaticamente"stream_options": {"include_usage": true}ao corpo da solicitação quando um limite de taxa de token está ativo e a opção ainda não está presente. Isso permite uma contabilização precisa dos tokens para a aplicação do TPM. -
Caminhos compatíveis: os limites da taxa de token se aplicam somente a solicitações em caminhos de inferência conhecidos (
/v1/chat/completions,/v1/messages,/v1/responses). As solicitações para outros caminhos não estão sujeitas aos limites de token. -
Pass-through alvos: se seu alvo fizer proxy para um provedor de modelo sem usar um caminho de inferência conhecido, os limites de taxa de token não se aplicam. Considere usar limites de taxa de solicitação ou reestruturar sua meta para usar um caminho compatível.
Perguntas frequentes sobre limite de taxa de token
Esta seção responde a perguntas comuns sobre como a aplicação do token por minuto (TPM) funciona na prática.
- Como funciona a fiscalização do TPM?
-
O gateway usa um modelo de fiscalização baseado em orçamento. Quando uma solicitação chega, o gateway estima a contagem de tokens de entrada e reserva esse valor do seu orçamento de TPM configurado. Se a estimativa exceder o orçamento restante, a solicitação será rejeitada com uma resposta HTTP 429 antes de chegar ao modelo. Depois que uma solicitação bem-sucedida é concluída, o gateway reconcilia o orçamento substituindo a estimativa inicial pelo uso real do token (tokens de entrada e saída) relatado pelo provedor do modelo.
- Como o TPM funciona com o cache de prompts?
-
O gateway contabiliza os tokens com base nos
output_tokensvaloresinput_tokense que o provedor do modelo retorna na resposta de inferência. O gateway não rastreia nem se ajusta de forma independente para o cache imediato. A inclusão de tokens em cacheinput_tokensdepende de como seu provedor de modelo relata o uso — esse comportamento varia entre os provedores. Consulte a documentação do seu fornecedor de modelos para entender como o cache imediato afeta a contagem de tokens relatada e seu consumo efetivo de TPM. - Se meu limite de TPM for 50 e o tokenizador estimar 51 tokens de entrada, a solicitação será limitada?
-
Sim. O gateway avalia a estimativa do tokenizador em relação ao orçamento restante do TPM antes de encaminhar a solicitação. Se a estimativa exceder o orçamento disponível, a solicitação será rejeitada com uma resposta HTTP 429. A resposta inclui um
retryAftercampo indicando quando um orçamento suficiente estará disponível. - Se uma solicitação de longa duração consumir mais tokens do que o estimado inicialmente, a resposta será limitada?
-
Não. Quando o gateway aceita e encaminha uma solicitação, a resposta é sempre entregue na íntegra. O gateway reserva tokens estimados no momento da solicitação, e outras solicitações continuam sendo avaliadas em relação ao orçamento restante enquanto a solicitação está em andamento. Quando a resposta é concluída, o gateway reconcilia o uso real com a estimativa. Se o consumo real for maior, o orçamento é ajustado — isso pode fazer com que as solicitações subsequentes sejam limitadas, mas a resposta original nunca é interrompida.
- Como a contabilização de tokens funciona com respostas de streaming?
-
O gateway usa o bloco de resposta final como a fonte da verdade para a reconciliação simbólica. Nem todos os fornecedores de modelos relatam o uso de tokens em cada trecho transmitido — alguns o incluem apenas no trecho final. O gateway aguarda a resposta completa antes de reconciliar o orçamento do TPM. Para o streaming do OpenAI Chat Completions, o gateway é adicionado automaticamente
"stream_options": {"include_usage": true}ao corpo da solicitação quando um limite de taxa de token está ativo e essa opção ainda não está presente, garantindo que contagens precisas de tokens estejam disponíveis na parte final.
Considerações operacionais
- Tempo de propagação
-
As mudanças no limite de taxa levam até 30 segundos para serem propagadas. Planeje esse atraso durante incidentes — uma entrada de bloqueio (
rate: 0) não é imediata. - Comportamento de taxa zero
-
Uma taxa de 0 bloqueia todo o tráfego correspondente. Use isso deliberadamente para bloqueio de emergência. Double-check insira valores de dimensão antes da configuração
rate: 0para evitar o bloqueio acidental do tráfego legítimo. - Teclas de dimensão imutáveis
-
Você não pode alterar o
dimensionKeyslimite de taxa existente. Se você precisar de dimensões diferentes, exclua o limite de taxa existente e crie um novo. Planeje sua estrutura de chave de dimensão antes de criar limites de taxa de produção.
Importante
Os limites de taxa usam o comportamento de abertura de falha. Se o serviço de limite de taxa estiver temporariamente indisponível, o tráfego será permitido. Não use limites de taxa como seu único mecanismo de segurança. Combine-os com autenticação, autorização, regras de gateway e WAF para uma defesa aprofundada.
Monitoramento
Use os seguintes sinais para monitorar a eficácia do limite de taxa:
Sinais de resposta limitados:
-
Monitore as respostas HTTP 429 do seu gateway.
-
Analise o
limitKeycampo em respostas limitadas para identificar qual limite de taxa está sendo acionado. -
Use o
retryAftervalor para entender a janela de imposição.
OpenTelemetry atributos de extensão:
| Atributo | O que monitorar |
|---|---|
|
|
Contagem de solicitações limitadas. Alerta sobre picos inesperados. |
|
|
Identifique quais limites de taxa estão mais ativos. Procure uma fiscalização desequilibrada. |
|
|
Determine se solicitações, tokens ou conexões são o gargalo. |
|
|
Identifique quais chamadores ou alvos estão atingindo os limites com mais frequência. |
|
|
Lista ordenada de todos os baldes verificados. Útil para entender quais limites se aplicam a uma solicitação específica. |
Exemplos de consultas de monitoramento:
Use o Amazon CloudWatch Logs Insights no grupo de aws/spans registros para consultar as extensões de OTEL do seu gateway. Os exemplos a seguir ajudam a identificar padrões de limitação.
Conte as solicitações limitadas por limite de taxa:
filter attributes.`aws.agentcore.gateway.throttle.customer.decision` = "throttled" | stats count(*) as throttle_count by attributes.`aws.agentcore.gateway.throttle.customer.limit_key` | sort throttle_count desc
Identifique quais chamadores estão sendo mais limitados:
filter attributes.`aws.agentcore.gateway.throttle.customer.decision` = "throttled" | stats count(*) as throttle_count by attributes.`aws.agentcore.gateway.throttle.customer.matched_entry` | sort throttle_count desc | limit 20
Compare solicitações permitidas e limitadas ao longo do tempo:
filter ispresent(attributes.`aws.agentcore.gateway.throttle.customer.decision`) | stats count(*) as total, sum(attributes.`aws.agentcore.gateway.throttle.customer.decision` = "throttled") as throttled by bin(5m)
Se um único limite de taxa for responsável pela maioria dos eventos de aceleração, considere se a taxa configurada é muito restritiva ou se o padrão de tráfego indica abuso.
Criação de alarmes a partir de intervalos de limite de taxa
Você pode converter os atributos de amplitude do OTEL com limite de taxa em CloudWatch métricas e alarmes para monitorar proativamente o comportamento de limitação. Isso requer habilitar a observabilidade do gateway (consulte Habilitando a observabilidade para recursos do AgentCore gateway).
Etapa 1: Habilitar extensões de gateway
Certifique-se de que seu gateway tenha a observabilidade ativada. As extensões do gateway são exportadas CloudWatch e podem ser visualizadas na Pesquisa de CloudWatch Transações e na página generativa de observabilidade de IA.
Etapa 2: criar um filtro CloudWatch métrico
Crie um filtro métrico no grupo de aws/spans registros para extrair eventos de aceleração como uma métrica personalizada. O exemplo a seguir cria uma métrica que conta as solicitações limitadas por limite de taxa:
{ "filterPattern": "{ $.attributes.aws\\.agentcore\\.gateway\\.throttle\\.customer\\.decision = \"throttled\" }", "metricTransformations": [ { "metricName": "GatewayRateLimitThrottleCount", "metricNamespace": "AgentCore/Gateway/RateLimits", "metricValue": "1", "defaultValue": 0, "dimensions": { "LimitKey": "$.attributes.aws\\.agentcore\\.gateway\\.throttle\\.customer\\.limit_key" } } ] }
Etapa 3: criar um CloudWatch alarme
Depois que o filtro métrico estiver instalado, crie um alarme que seja acionado quando a taxa de aceleração ultrapassar um limite.
exemplo
Etapa 4: criar um painel
Crie um CloudWatch painel para visualizar as taxas de aceleração ao longo do tempo. A configuração do widget a seguir mostra as contagens de aceleração agrupadas por limite de taxa:
{ "metrics": [ [ "AgentCore/Gateway/RateLimits", "GatewayRateLimitThrottleCount", "LimitKey", "per-target-rps" ], [ "AgentCore/Gateway/RateLimits", "GatewayRateLimitThrottleCount", "LimitKey", "per-caller-rpm" ] ], "period": 60, "stat": "Sum", "title": "Rate Limit Throttles by Limit" }
dica
Você também pode usar a Throttles métrica incorporada (disponível por padrão nas métricas de invocação do gateway) para uma contagem total de aceleradores sem granularidade por limite. Use filtros métricos personalizados nos atributos de amplitude quando precisar de visibilidade por limite ou por chamador.