View a markdown version of this page

Dimensions de la limite de débit - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Dimensions de la limite de débit

Les clés de dimension déterminent la manière dont la passerelle regroupe le trafic dans des compartiments de limite de débit. Chaque clé de dimension fait référence à une valeur issue du contexte de la demande. La passerelle résout ces valeurs lors de l'exécution pour trouver l'entrée de limite de débit correspondante.

Dimensions prises en charge

Clé Dimension Description Exemple de valeur

targetName

Le nom de la cible invoquée. Résolu à partir du chemin de la demande.

my-llm-target

toolName

Le nom complet de l'outil invoqué, au formattargetName___toolName. Disponible pour les demandes d'utilisation de l'outil MCP.

my-mcp-target___get_weather

qualifiedModelId

L'identifiant de modèle complet pour les cibles d'inférence.

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

$.context.jwt.<claim>

Une réclamation extraite du jeton JWT de l'appelant. <claim>Remplacez-le par le nom de la réclamation (par exemple$.context.jwt.sub,$.context.jwt.team).

user-123

$.context.iam.principal

L'ARN principal IAM de l'appelant.

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

$.context.iam.sourceIdentity

L'identité de source définie par l'appelant lorsqu'il assume un rôle.

developer@example.com

La valeur par défaut (*)

Les entrées de limite de débit prennent en charge la valeur spéciale * en tant que valeur par défaut fourre-tout pour une dimension.

  • Une entrée avec * pour une dimension signifie « appliquer ce taux à toutes les valeurs de cette dimension ».

  • S'il existe une entrée plus spécifique pour la valeur réelle, l'entrée spécifique a la priorité (le match le plus spécifique gagne).

  • *crée des tranches indépendantes par entité : chaque valeur distincte qui correspond obtient sa propre tranche tarifaire au taux configuré.

Trailing-only contrainte pour les limites de débit multidimensionnelles :

Lorsqu'une limite de débit comporte plusieurs touches de dimension, elle ne peut apparaître qu'en position finale. Si vous utilisez à la position N, toutes les positions suivantes doivent également l'être*.

Par exemple, avec dimensionKeys: ["targetName", "toolName", "$.context.jwt.sub"] :

Dimensions d'entrée Valide Pourquoi

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

Oui

Toutes les positions sont des valeurs spécifiques.

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

Oui

Seule la dernière position l'est*.

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

Oui

Les positions de queue sont*.

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

Oui

Toutes les positions le sont * (par défaut pour toutes les combinaisons).

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

Non

*en position 1 suivie de valeurs spécifiques.

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

Non

*aux positions 1 à 2 suivies d'une valeur spécifique.

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

Non

*en position 2 suivie d'une valeur spécifique en position 3.

Comment fonctionne l'appariement :

Lorsqu'une demande arrive, la passerelle résout les valeurs de dimension réelles et recherche l'entrée correspondante la plus spécifique. Par exemple, si les valeurs résolues sont["target1", "readData", "alice"], la passerelle vérifie les entrées dans cet ordre :

  1. ["target1", "readData", "alice"]— correspondance exacte (la plus spécifique)

  2. ["target1", "readData", "*"]— la dernière dimension utilise la valeur par défaut

  3. ["target1", "*", "*"]— les deux dernières dimensions utilisent la valeur par défaut

  4. ["*", "*", "*"]— entièrement par défaut (le moins spécifique)

Le premier match est gagné.

Astuce

Utilisez des entrées spécifiques pour les entités connues à valeur élevée ou soumises à des restrictions, et des * entrées comme niveaux de taux par défaut pour tout le reste.

Comportement de résolution des dimensions

Lorsque la passerelle évalue une limite de débit, elle résout chaque clé de dimension à partir du contexte de la demande :

  • Si une clé de dimension ne peut pas être résolue à partir de la demande (par exemple, toolName sur une demande non liée à un outil ou sur une réclamation JWT qui n'existe pas), la passerelle ignore complètement cette limite de débit. La demande n'est pas limitée par cette limite de débit.

  • Seul le contexte validé est utilisé pour la résolution. Les revendications JWT sont extraites de jetons qui ont été validés par la configuration d'authentification de la passerelle. Le contexte IAM n'est disponible que pour les SigV4-authenticated demandes.

Limites partagées et limites individuelles

La combinaison des clés de dimension et des valeurs d'entrée détermine si le trafic partage une seule tranche tarifaire ou si chaque entité obtient sa propre tranche indépendante.

Clés de dimensions Dimensions d'entrée Comportement

["targetName"]

{"targetName": "my-target"}

Tout le trafic vers my-target un compartiment partagé (limite partagée pour cette cible).

["targetName"]

{"targetName": "*"}

Chaque cible obtient son propre compartiment indépendant à ce taux (par entité).

["$.context.jwt.sub"]

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

Chaque appelant reçoit son propre compartiment (limite individuelle par appelant).

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

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

Chaque appelant reçoit son propre compartiment, défini à. my-target

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

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

Chaque combinaison unique de cible et d'appelant dispose de son propre compartiment.

Avertissement

Évitez d'utiliser des revendications JWT à cardinalité élevée ou illimitées comme clés de dimension (par exemple, $.context.jwt.jti$.context.jwt.nonce, ou ID de demande). Cela crée un nombre illimité de tranches tarifaires, ce qui peut réduire l'efficacité de la limitation des taux. Utilisez des identifiants stables et limités tels que subteam, ou tier instead.