Verwendung von Routing-Regeln - Amazon API Gateway

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.

Verwendung von 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 einer Routing-Regel

Das folgende Verfahren zeigt, wie Sie eine Routing-Regel für einen benutzerdefinierten Domainnamen erstellen, dessen Routing-Modus entweder auf ROUTING_RULE_THEN_API_MAPPING oder ROUTING_RULE_ONLY festgelegt ist.

AWS Management Console
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie Benutzerdefinierte Domainnamen im Hauptnavigationsbereich aus.

  3. Wählen Sie einen benutzerdefinierten Domainnamen aus.

  4. Wählen Sie auf der Registerkarte Routing-Details die Option Routing-Regel hinzufügen aus.

  5. Wählen Sie Neue Bedingung hinzufügen aus, um eine neue Bedingung hinzuzufügen.

    Sie können eine Header- oder Basispfadbedingung hinzufügen. Um alle eingehenden Anfragen Ihrem benutzerdefinierten Domainnamen zuzuweisen, fügen Sie keine Bedingung hinzu.

  6. Verwenden Sie für Aktion das Dropdown-Menü, um Ihre Ziel-API und Ihre Zielstufe auszuwählen.

  7. Wählen Sie Weiter aus.

  8. Geben Sie im Prioritätsfeld eine Zahl für Ihre Priorität ein.

    API Gateway wertet Regeln in der Reihenfolge der Priorität aus, ausgehend vom niedrigsten Wert bis hin zum höchsten Wert.

    Wenn Sie eine Regel ohne Bedingung erstellen, empfehlen wir, eine Priorität mit hohem Wert zu verwenden.

  9. Wählen Sie Routing-Regel erstellen aus.

AWS CLI

Mit dem folgenden create-routing-ruleBefehl wird eine Routingregel mit der Priorität 50 erstellt. In diesem Beispiel leitet API Gateway alle eingehenden Anfragen, die die Header Hello:World, x-version:beta sowie den Basispfad PetStoreShopper enthalten, 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 der Priorität einer Routing-Regel

Sie können die Priorität einer Routing-Regel ändern. Dies tritt sofort in Kraft und kann beeinflussen, wie API-Benutzer Ihre benutzerdefinierten Domainnamen aufrufen. Wir empfehlen, beim Festlegen der Prioritäten Ihrer Routing-Regeln Lücken zwischen den Regeln zu lassen.

Stellen Sie sich beispielsweise zwei Routing-Regeln vor: Regel abc123 mit einer Priorität von 50 und Regel zzz000 mit einer Priorität von 150. Um die Priorität so zu ändern, dass API Gateway Regel zzz000 zuerst auswertet, können Sie die Priorität von Regel zzz000 auf 30 setzen.

AWS Management Console
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie Benutzerdefinierte Domainnamen im Hauptnavigationsbereich aus.

  3. Wählen Sie einen benutzerdefinierten Domainnamen aus.

  4. Wählen Sie auf der Registerkarte Routing-Details zunächst Ihre Routing-Regel und anschließend Bearbeiten aus.

  5. Wählen Sie Weiter aus.

  6. Geben Sie unter „Priorität“ die neue Priorität ein.

  7. Wählen Sie Änderungen speichern aus.

AWS CLI

Der folgende put-routing-ruleBefehl ändert die Priorität einer Routing-Regel. abc123

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" }