View a markdown version of this page

Ajouter des règles à une passerelle - Amazon Bedrock AgentCore

Ajouter des règles à une passerelle

Les règles de passerelle vous permettent de contrôler le routage du trafic et de remplacer les configurations cibles sur votre passerelle sans redéployer les cibles. Vous créez des ensembles de configuration qui remplacent le comportement d'une cible, puis vous utilisez des règles pour contrôler quelle version de bundle s'applique à quel trafic. Les règles permettent également d'acheminer les demandes vers différentes cibles en fonction du chemin de la demande ou de l'identité de l'appelant.

Utilisez les règles de passerelle pour atteindre les objectifs suivants :

  • Testez les versions des ensembles de configuration par le biais A/B de tests

  • Associer des principes spécifiques à une version du bundle de configuration à des fins de débogage

  • Acheminer le trafic vers des cibles spécifiques en fonction du chemin de la demande ou de l'identité de l'appelant

  • Définissez un bundle ou une cible de configuration par défaut pour l'ensemble du trafic

Comment fonctionnent les règles de passerelle

Chaque règle de passerelle contient les composants suivants :

Composant Description

Priority

Nombre entier compris entre 1 et 1 000 000. Les chiffres inférieurs indiquent une priorité plus élevée. Chaque valeur de priorité doit être unique au sein d'une passerelle.

Conditions (facultatives)

Critères qui déterminent si la règle correspond à une demande. Une règle sans conditions agit comme un fourre-tout qui correspond à l'ensemble du trafic.

Actions (obligatoires)

Action à effectuer lorsque la règle correspond. Vous pouvez remplacer les ensembles de configuration, les acheminer vers des cibles spécifiques, ou les deux.

Description (facultative)

Description textuelle de l'objectif de la règle.

Résolution des règles

La passerelle évalue les règles par ordre de priorité croissant (les nombres les plus bas en premier). La passerelle résout chaque type d'action indépendamment en utilisant la sémantique du premier match.

Le tableau suivant montre comment la passerelle résout les règles pour un exemple de demande. Dans cet exemple, le rôle QA envoie une demande à/my-target-canary/chat.

Priority Conditions Actions Correspond à la demande ? Résultat

100

Rôle QA

configurationBundle: version groupée A

Oui

Résout configurationBundle à la version A

200

Chemin /my-target-canary/*

routeToTarget: my-target-canary

Oui

Décide routeToTarget de my-target-canary

1000000

Aucun (fourre-tout)

configurationBundle: version du bundle B, routeToTarget : my-target-primary

Oui

Les deux types d'actions sont déjà résolus. Ignoré.

Résultat final : La demande utilise la version A du bundle et est acheminée versmy-target-canary.

Astuce

Laissez des espaces entre les numéros de priorité (par exemple, 100, 200, 300) afin de pouvoir insérer des règles ultérieurement sans renuméroter les règles existantes.

Conditions

Les conditions déterminent les demandes auxquelles une règle correspond. Une règle peut comporter au maximum 2 conditions. Une règle sans conditions s'applique à l'ensemble du trafic.

La passerelle prend en charge les types de conditions suivants :

Principaux du match

Correspond aux demandes en fonction du principal IAM de l'appelant. La anyOf liste contient de 1 à 100 entrées. Chaque entrée spécifie un iamPrincipal avec les champs suivants :

  • arn— L'ARN principal IAM à associer.

  • operator(facultatif) — L'opérateur de comparaison. Les valeurs valides sont StringEquals (par défaut) et StringLike. À utiliser StringLike pour faire correspondre des caractères génériques.

Chemins de match

Correspond aux demandes en fonction du chemin de la demande. La anyOf liste contient de 1 à 10 entrées. Chaque entrée doit utiliser le format/<targetName>/*, où <targetName> correspond au nom d'une cible HTTP existante sur la passerelle. La cible doit être en Ready état. La matchPaths condition n'est prise en charge que pour les passerelles avec des cibles HTTP. Les préfixes de chemin réservés suivants ne sont pas autorisés :/mcp,/a2a,, /responses/converse,/.well-known.

Logique d'évaluation des conditions

  • Dans un type de condition : la passerelle utilise la logique OR. Une demande correspond si elle répond à l'une des entrées de la anyOf liste.

  • Quels que soient les types de conditions : la passerelle utilise la logique AND. Si une règle possède les deux matchPrincipals etmatchPaths, la demande doit correspondre à au moins une entrée pour chaque type de condition.

Actions

Les actions définissent ce que fait la passerelle lorsqu'une règle correspond. Une règle peut comporter au maximum 2 actions.

La passerelle prend en charge les types d'actions suivants :

Dérogations du bundle de configuration () configurationBundle

Remplacez le bundle de configuration appliqué au trafic correspondant.

  • staticOverride— Épingle tout le trafic correspondant à une version de bundle de configuration spécifique. Spécifiez l'ARN du bundle et l'ID de version.

  • weightedOverride— Répartit le trafic entre deux versions de bundle de configuration. La trafficSplit liste doit contenir exactement 2 entrées avec des pondérations dont la somme est égale à 100. Le bundle de configuration doit se trouver sur le même compte que la passerelle.

Routage cible (routeToTarget)

Itinéraires correspondant au trafic vers une cible spécifique. La cible doit utiliser le protocole HTTP et être en Ready état.

  • staticRoute— Achemine tout le trafic correspondant vers une cible spécifique par son nom.

  • weightedRoute— Répartit le trafic entre deux cibles. La trafficSplit liste doit contenir exactement 2 entrées avec des pondérations dont la somme est égale à 100. Les noms des entrées de répartition du trafic doivent être uniques.

Restrictions

Le tableau suivant répertorie les limites des règles de passerelle.

Ressource Limite

Règles par passerelle

20

Fourchette de priorité

1 à 1 000 000

Conditions maximales par règle

2

Nombre maximum d'actions par règle

2

matchPrincipals.anyOfnombre maximum d'entrées

100

matchPaths.anyOfnombre maximum d'entrées

10

trafficSplitentrées

Exactement 2

trafficSplitgamme de poids

1 à 99

Rubriques