Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Wie benutzt man Routing-Regeln
Sie können eine Routingregel mit dem AWS Management Console AWS CLI, oder einem beliebigen AWS SDK erstellen. Nachdem Sie eine Regel erstellt haben, können Sie deren Priorität ändern.
Erstellen Sie eine Routing-Regel
Das folgende Verfahren zeigt, wie Sie eine Routingregel für einen benutzerdefinierten Domänennamen mit einem Routingmodus erstellen, der entweder auf ROUTING_RULE_THEN_API_MAPPING
oder eingestellt istROUTING_RULE_ONLY
.
- AWS Management Console
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.
Wählen Sie Benutzerdefinierten Domänennamen im Hauptnavigationsbereich aus.
-
Wählen Sie einen benutzerdefinierten Domänennamen aus.
-
Wählen Sie auf der Registerkarte Routing-Details die Option Routing-Regel hinzufügen aus.
-
Wählen Sie Neue Bedingung hinzufügen, um eine neue Bedingung hinzuzufügen.
Sie können eine Header- oder Basispfadbedingung hinzufügen. Um alle eingehenden Anfragen Ihrem benutzerdefinierten Domainnamen zuzuordnen, fügen Sie keine Bedingung hinzu.
Verwenden Sie für Aktion das Drop-down-Menü, um Ihre Ziel-API und Ihre Zielphase auszuwählen.
-
Wählen Sie Weiter aus.
Geben Sie im Prioritätsfeld eine Zahl für Ihre Priorität ein.
API Gateway bewertet Regeln in der Reihenfolge ihrer Priorität, vom niedrigsten Wert bis zum höchsten Wert.
Wenn Sie eine Regel ohne Bedingung erstellen, empfehlen wir Ihnen, eine Priorität mit hohem Wert zu verwenden.
Wählen Sie Routing-Regel erstellen aus.
- AWS CLI
-
Der folgende create-routing-ruleBefehl erstellt eine Routing-Regel mit der Priorität 50. In diesem Beispiel leitet API Gateway alle eingehenden Anfragen mit den Headern Hello:World
x-version:beta
und dem Basispfad PetStoreShopper
an die Ziel-API a1b2c3
weiter.
aws apigatewayv2 create-routing-rule \
--domain-name 'api.example.com' \
--priority 50 \
--conditions '[
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "Hello",
"ValueGlob": "World"
}
]
}
},
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "x-version",
"ValueGlob": "beta"
}
]
}
},
{
"MatchBasePaths": {
"AnyOf": [
"PetStoreShopper"
]
}
}
]'\
--actions '[
{
"InvokeApi": {
"ApiId": "a1b2c3",
"Stage": "prod"
}
}
]'
Die Ausgabe sieht wie folgt aus:
{
"Actions": [
{
"InvokeApi": {
"ApiId": "a1b2c3",
"Stage": "prod",
"StripBasePath": false
}
}
],
"Conditions": [
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "Hello",
"ValueGlob": "World"
}
]
}
},
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "x-version",
"ValueGlob": "beta"
}
]
}
},
{
"MatchBasePaths": {
"AnyOf": [
"PetStoreShopper"
]
}
}
],
"Priority": 50,
"RoutingRuleArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/api.example.com/routingrules/abc123",
"RoutingRuleId": "abc123"
}
Ändern Sie die Priorität einer Routing-Regel
Sie können die Priorität einer Routing-Regel ändern. Dies wird sofort wirksam und kann sich darauf auswirken, wie API-Nutzer Ihre benutzerdefinierten Domainnamen aufrufen. Wir empfehlen, dass Sie bei der Festlegung der Prioritäten Ihrer Routing-Regeln Lücken zwischen den Regeln lassen.
Stellen Sie sich beispielsweise zwei Routing-Regeln vor, eine Regel abc123
mit einer Priorität von 50 und eine Regel zzz000
mit einer Priorität von 150. Um die Priorität der Regeln so zu ändern, dass API Gateway die Regel zzz000
zuerst auswertet, können Sie die Priorität der Regel zzz000
auf 30 ändern.
- AWS Management Console
-
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.
Wählen Sie Benutzerdefinierten Domänennamen im Hauptnavigationsbereich aus.
-
Wählen Sie einen benutzerdefinierten Domänennamen aus.
-
Wählen Sie auf der Registerkarte Routing-Details Ihre Routing-Regel aus und klicken Sie dann auf Bearbeiten.
-
Wählen Sie Weiter aus.
-
Geben Sie unter Priorität die neue Priorität ein.
Wählen Sie Änderungen speichern aus.
- AWS CLI
-
Der folgende put-routing-ruleBefehl ändert die Priorität einer Routing-Regelabc123
.
aws apigatewayv2 put-routing-rule \
--domain-name 'api.example.com' \
--priority 30 \
--routing-rule-id abc123 \
--conditions '[
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "Hello",
"ValueGlob": "World"
}
]
}
},
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "x-version",
"ValueGlob": "beta"
}
]
}
},
{
"MatchBasePaths": {
"AnyOf": [
"PetStoreShopper"
]
}
}
]'\
--actions '[
{
"InvokeApi": {
"ApiId": "a1b2c3",
"Stage": "prod"
}
}
]'
Die Ausgabe sieht wie folgt aus:
{
"Actions": [
{
"InvokeApi": {
"ApiId": "a1b2c3",
"Stage": "prod",
"StripBasePath": false
}
}
],
"Conditions": [
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "Hello",
"ValueGlob": "World"
}
]
}
},
{
"MatchHeaders": {
"AnyOf": [
{
"Header": "x-version",
"ValueGlob": "beta"
}
]
}
},
{
"MatchBasePaths": {
"AnyOf": [
"PetStoreShopper"
]
}
}
],
"Priority": 38,
"RoutingRuleArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/api.example.com/routingrules/abc123",
"RoutingRuleId": "abc123"
}