View a markdown version of this page

Dimensões do limite de taxa - Base da Amazônia AgentCore

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á.

Dimensões do limite de taxa

As chaves de dimensão determinam como o gateway agrupa o tráfego em intervalos de limite de taxa. Cada chave de dimensão faz referência a um valor do contexto da solicitação. O gateway resolve esses valores em tempo de execução para encontrar a entrada do limite de taxa correspondente.

Dimensões suportadas

Chave de dimensão Description Valor de exemplo

targetName

O nome do alvo que está sendo invocado. Resolvido a partir do caminho da solicitação.

my-llm-target

toolName

O nome totalmente qualificado da ferramenta que está sendo invocada, no formato. targetName___toolName Disponível para solicitações de uso de ferramentas do MCP.

my-mcp-target___get_weather

qualifiedModelId

O identificador de modelo totalmente qualificado para alvos de inferência.

anthropic.claude-3-sonnet-20240229-v1:0

$.context.jwt.<claim>

Uma reivindicação extraída do token JWT do chamador. <claim>Substitua pelo nome da reivindicação (por exemplo$.context.jwt.sub,,$.context.jwt.team).

user-123

$.context.iam.principal

O ARN principal do IAM do chamador.

arn:aws:iam::123456789012:role/MyRole

$.context.iam.sourceIdentity

A identidade de origem definida pelo chamador ao assumir uma função.

developer@example.com

O valor padrão (*)

As entradas de limite de taxa suportam o valor especial * como um padrão abrangente para uma dimensão.

  • Uma entrada com * para uma dimensão significa “aplicar essa taxa a todos os valores dessa dimensão”.

  • Se existir uma entrada mais específica para o valor real, a entrada específica terá precedência (a partida mais específica vence).

  • *cria intervalos independentes por entidade — cada valor distinto que corresponde obtém seu próprio intervalo de taxas na taxa configurada.

Trailing-only restrição para limites de taxa multidimensionais:

Quando um limite de taxa tem várias teclas de dimensão, só pode aparecer nas posições finais. Se você usar na posição N, todas as posições subsequentes também devem ser*.

Por exemplo, comdimensionKeys: ["targetName", "toolName", "$.context.jwt.sub"]:

Dimensões de entrada Válido Por que

["target1", "readData", "alice"]

Sim

Todas as posições são valores específicos.

["target1", "readData", "*"]

Sim

Somente a última posição é*.

["target1", "*", "*"]

Sim

As posições finais são*.

["*", "*", "*"]

Sim

Todas as posições são * (padrão para qualquer combinação).

["*", "readData", "alice"]

Não

*na posição 1 seguida por valores específicos.

["*", "*", "alice"]

Não

*nas posições 1-2 seguidas por um valor específico.

["target1", "*", "alice"]

Não

*na posição 2 seguido por um valor específico na posição 3.

Como funciona a correspondência:

Quando uma solicitação chega, o gateway resolve os valores reais da dimensão e procura a entrada correspondente mais específica. Por exemplo, se os valores resolvidos forem["target1", "readData", "alice"], o gateway verificará as entradas nesta ordem:

  1. ["target1", "readData", "alice"]— correspondência exata (mais específica)

  2. ["target1", "readData", "*"]— a última dimensão usa o padrão

  3. ["target1", "*", "*"]— as duas últimas dimensões usam o padrão

  4. ["*", "*", "*"]— totalmente padrão (menos específico)

A primeira partida vence.

dica

Use entradas específicas para entidades conhecidas de alto valor ou restritas e * entradas como níveis de taxa padrão para todo o resto.

Comportamento de resolução de dimensões

Quando o gateway avalia um limite de taxa, ele resolve cada chave de dimensão do contexto da solicitação:

  • Se uma chave de dimensão não puder ser resolvida a partir da solicitação (por exemplo, toolName em uma solicitação que não seja de ferramenta ou em uma declaração do JWT que não existe), o gateway ignora completamente esse limite de taxa. A solicitação não é limitada por esse limite de taxa.

  • Somente o contexto validado é usado para resolução. As declarações do JWT são extraídas de tokens que foram validados pela configuração de autenticação do gateway. O contexto do IAM está disponível somente para SigV4-authenticated solicitações.

Limites compartilhados versus limites individuais

A combinação de chaves de dimensão e valores de entrada determina se o tráfego compartilha um único intervalo de taxa ou se cada entidade obtém seu próprio intervalo independente.

Teclas de dimensão Dimensões de entrada Comportamento

["targetName"]

{"targetName": "my-target"}

Todo o tráfego para my-target compartilhar um bucket (limite compartilhado para esse alvo).

["targetName"]

{"targetName": "*"}

Cada alvo recebe seu próprio bucket independente nessa taxa (por entidade).

["$.context.jwt.sub"]

{"$.context.jwt.sub": "*"}

Cada chamador exclusivo recebe seu próprio bucket (limite individual por chamador).

["targetName", "$.context.jwt.sub"]

{"targetName": "my-target", "$.context.jwt.sub": "*"}

Cada chamador recebe seu próprio bucket, com o escopo definido. my-target

["targetName", "$.context.jwt.sub"]

{"targetName": "*", "$.context.jwt.sub": "*"}

Cada combinação exclusiva de alvo e chamador tem seu próprio bucket.

Atenção

Evite usar declarações JWT de alta cardinalidade ou ilimitadas como chaves de dimensão (por exemplo,$.context.jwt.jti, $.context.jwt.nonce ou IDs de solicitação). Isso cria um número ilimitado de faixas de tarifas, o que pode reduzir a eficácia da limitação de taxas. Use identificadores estáveis e limitadossub, como, ou tier em vez team disso.