

# Regeln zu einem Gateway hinzufügen
<a name="gateway-rules"></a>

Mit Gateway-Regeln können Sie das Routing des Datenverkehrs steuern und Zielkonfigurationen auf Ihrem Gateway außer Kraft setzen, ohne Ziele erneut bereitstellen zu müssen. Sie erstellen [Konfigurationspakete](configuration-bundles.md), die das Verhalten eines Ziels außer Kraft setzen, und steuern dann mithilfe von Regeln, welche Bundle-Version für welchen Traffic gilt. Regeln unterstützen auch das Routing von Anfragen an verschiedene Ziele, basierend auf dem Anforderungspfad oder der Identität des Anrufers.

Verwenden Sie Gateway-Regeln, um die folgenden Ziele zu erreichen:
+ Experimentieren Sie mit den Versionen der Konfigurationspakete im Rahmen von A/B Tests
+ Binden Sie bestimmte Prinzipale zum Debuggen an eine Version des Konfigurationspakets
+ Leiten Sie den Verkehr auf der Grundlage des Anforderungspfads oder der Identität des Anrufers an bestimmte Ziele weiter
+ Legen Sie ein Standardkonfigurationspaket oder ein Standardziel für den gesamten Datenverkehr fest

## Wie funktionieren Gateway-Regeln
<a name="gateway-rules-how-they-work"></a>

Jede Gateway-Regel enthält die folgenden Komponenten:


| Komponente | Description | 
| --- | --- | 
| Priorität | Eine Ganzzahl von 1 bis 1.000.000. Niedrigere Zahlen bedeuten eine höhere Priorität. Jeder Prioritätswert muss innerhalb eines Gateways eindeutig sein. | 
| Conditions (optional) | Kriterien, die bestimmen, ob die Regel einer Anfrage entspricht. Eine Regel ohne Bedingungen dient als Sammelbegriff für den gesamten Verkehr. | 
| Aktionen (erforderlich) | Die Aktion, die ausgeführt werden soll, wenn die Regel zutrifft. Sie können Konfigurationspakete überschreiben, an bestimmte Ziele weiterleiten oder beides. | 
| Description (optional) | Eine Textbeschreibung des Zwecks der Regel. | 

## Auflösung der Regel
<a name="gateway-rules-resolution"></a>

Das Gateway bewertet Regeln in aufsteigender Prioritätsreihenfolge (niedrigere Zahlen zuerst). Das Gateway löst jeden Aktionstyp unabhängig unter Verwendung der First-Match-Semantik auf.

Die folgende Tabelle zeigt, wie das Gateway Regeln für eine Beispielanforderung auflöst. In diesem Beispiel sendet die QA-Rolle eine Anfrage an`/my-target-canary/chat`.


| Priorität | Bedingungen | Aktionen | Entspricht der Anfrage? | Ergebnis | 
| --- | --- | --- | --- | --- | 
| 100 | Eine Rolle |  `configurationBundle`: Bundle-Version A | Ja | Löst sich `configurationBundle` in Version A auf | 
| 200 | Pfad `/my-target-canary/*`  |  `routeToTarget`: `my-target-canary`  | Ja | Entschließt sich zu `routeToTarget` `my-target-canary`  | 
| 1000000 | Keine (Sammelsurkunde) |  `configurationBundle`: Bündelversion B,: `routeToTarget` `my-target-primary`  | Ja | Beide Aktionstypen wurden bereits gelöst. Übersprungen. | 

 **Endergebnis:** Die Anfrage verwendet Bundle-Version A und leitet weiter zu`my-target-canary`.

**Tipp**  
Lassen Sie Lücken zwischen den Prioritätsnummern (z. B. 100, 200, 300), sodass Sie Regeln später einfügen können, ohne bestehende Regeln neu zu nummerieren.

## Bedingungen
<a name="gateway-rules-conditions"></a>

Die Bedingungen bestimmen, welchen Anforderungen eine Regel entspricht. Eine Regel kann maximal 2 Bedingungen haben. Eine Regel ohne Bedingungen entspricht dem gesamten Traffic.

Das Gateway unterstützt die folgenden Bedingungstypen:

 **MatchPrincipals**   
Findet Anfragen, die auf dem IAM-Principal des Anrufers basieren. Die `anyOf` Liste enthält 1 bis 100 Einträge. Jeder Eintrag spezifiziert eine `iamPrincipal` mit den folgenden Feldern:  
+  `arn`— Der passende IAM-Prinzipal-ARN.
+  `operator`(optional) — Der Vergleichsoperator. Gültige Werte sind `StringEquals` (Standard) und `StringLike`. Wird `StringLike` für den Platzhalterabgleich verwendet.

 **MatchPaths**   
Ordnet Anfragen basierend auf dem Anforderungspfad zu. Die `anyOf` Liste enthält 1 bis 10 Einträge. Jeder Eintrag muss das Format verwenden`/<targetName>/*`, das dem Namen eines vorhandenen HTTP-Ziels auf dem Gateway `<targetName>` entspricht. Das Ziel muss sich im `Ready` Status befinden. Die `matchPaths` Bedingung wird nur für Gateways mit HTTP-Zielen unterstützt. Die folgenden Präfixe für reservierte Pfade sind nicht zulässig:`/mcp`,,`/a2a`,`/responses`,`/converse`. `/.well-known`

 **Logik zur Zustandsbewertung** 
+  **Innerhalb eines Bedingungstyps:** Das Gateway verwendet die OR-Logik. Eine Anfrage stimmt überein, wenn sie einen Eintrag in der `anyOf` Liste erfüllt.
+  **Für alle Bedingungstypen:** Das Gateway verwendet die UND-Logik. Wenn eine Regel `matchPrincipals` sowohl als auch enthält`matchPaths`, muss die Anforderung mindestens einem Eintrag aus jedem Bedingungstyp entsprechen.

## Aktionen
<a name="gateway-rules-actions"></a>

Aktionen definieren, was das Gateway tut, wenn eine Regel zutrifft. Eine Regel kann maximal 2 Aktionen haben.

Das Gateway unterstützt die folgenden Aktionstypen:

 **Das Konfigurationspaket überschreibt () `configurationBundle`**   
Überschreibt das [Konfigurationspaket](configuration-bundles.md), das auf den entsprechenden Datenverkehr angewendet wird.  
+  `staticOverride`— Verbindet den gesamten passenden Datenverkehr mit einer bestimmten Version des Konfigurationspakets. Geben Sie den Bundle-ARN und die Versions-ID an.
+  `weightedOverride`— Teilt den Verkehr zwischen zwei Versionen des Konfigurationspakets auf. Die `trafficSplit` Liste muss genau 2 Einträge mit Gewichtungen enthalten, deren Summe 100 ergibt. Das Konfigurationspaket muss sich in demselben Konto wie das Gateway befinden.

 **Ziel-Routing (`routeToTarget`)**   
Routen, die den Verkehr einem bestimmten Ziel zuordnen. Das Ziel muss das HTTP-Protokoll verwenden und sich im `Ready` Status befinden.  
+  `staticRoute`— Leitet den gesamten übereinstimmenden Verkehr namentlich an ein bestimmtes Ziel weiter.
+  `weightedRoute`— Teilt den Verkehr auf zwei Ziele auf. Die `trafficSplit` Liste muss genau 2 Einträge mit Gewichtungen enthalten, deren Summe 100 ergibt. Die Namen der Einträge in Traffic Split müssen eindeutig sein.

## Einschränkungen
<a name="gateway-rules-limits"></a>

In der folgenden Tabelle sind die Grenzwerte für Gateway-Regeln aufgeführt.


| Ressource | Limit | 
| --- | --- | 
| Regeln pro Gateway | 20 | 
| Prioritätsbereich | 1 bis 1.000.000 | 
| Maximale Bedingungen pro Regel | 2 | 
| Maximale Anzahl von Aktionen pro Regel | 2 | 
|  `matchPrincipals.anyOf`maximale Anzahl an Einträgen | 100 | 
|  `matchPaths.anyOf`maximale Anzahl an Einträgen | 10 | 
|  `trafficSplit`Einträge | Genau 2 | 
|  `trafficSplit`Gewichtsbereich | 1 bis 99 | 

**Topics**