Regeln zu einem Gateway hinzufügen
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, 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
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
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 |
|
Ja |
Löst sich |
|
200 |
Pfad |
|
Ja |
Entschließt sich zu |
|
1000000 |
Keine (Sammelsurkunde) |
|
Ja |
Beide Aktionstypen wurden bereits gelöst. Übersprungen. |
Endergebnis: Die Anfrage verwendet Bundle-Version A und leitet weiter zumy-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
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
anyOfListe enthält 1 bis 100 Einträge. Jeder Eintrag spezifiziert eineiamPrincipalmit den folgenden Feldern:-
arn— Der passende IAM-Prinzipal-ARN. -
operator(optional) — Der Vergleichsoperator. Gültige Werte sindStringEquals(Standard) undStringLike. WirdStringLikefür den Platzhalterabgleich verwendet.
-
- MatchPaths
-
Ordnet Anfragen basierend auf dem Anforderungspfad zu. Die
anyOfListe 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 imReadyStatus befinden. DiematchPathsBedingung 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
anyOfListe erfüllt. -
Für alle Bedingungstypen: Das Gateway verwendet die UND-Logik. Wenn eine Regel
matchPrincipalssowohl als auch enthältmatchPaths, muss die Anforderung mindestens einem Eintrag aus jedem Bedingungstyp entsprechen.
Aktionen
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, 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. DietrafficSplitListe 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
ReadyStatus befinden.-
staticRoute— Leitet den gesamten übereinstimmenden Verkehr namentlich an ein bestimmtes Ziel weiter. -
weightedRoute— Teilt den Verkehr auf zwei Ziele auf. DietrafficSplitListe 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
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 |
|
|
100 |
|
|
10 |
|
|
Genau 2 |
|
|
1 bis 99 |