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.
API-Zuweisung mithilfe von Routing-Regeln neu erstellen
Sie können eine API-Zuweisung mithilfe von Routing-Regeln neu erstellen. Um eine API-Zuweisung neu zu erstellen, stellen Sie sicher, dass das Entfernen des Basispfads aktiviert ist. Dadurch bleibt das Verhalten der API-Zuweisungen erhalten. Weitere Informationen finden Sie unter Entfernen des Basispfads mit Basispfadbedingungen.
Das folgende Tutorial zeigt, wie Sie die API-Zuweisung https://
als Routing-Regel neu erstellen. Außerdem erfahren Sie, wie Sie Ihre Zugriffsprotokolle aktualisieren, um die Routing-Regel-ID zu protokollieren, die API Gateway verwendet, um Datenverkehr an Ihre API zu senden.api.example.com/orders/v2/items/categories/5
- AWS Management Console
-
Um den Routingmodus auf ROUTING_RULE_THEN_ einzustellen API_MAPPING
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan
. Wählen Sie Benutzerdefinierte Domainnamen im Hauptnavigationsbereich aus.
-
Wählen Sie Ihren benutzerdefinierten Domainnamen aus.
-
Wählen Sie unter Domänendetails die Option Bearbeiten aus.
-
Wählen Sie für den Routing-Modus ROUTING_RULE_THEN_. API_MAPPING
-
Wählen Sie Speichern aus.
Nachdem Sie den Routing-Modus festgelegt haben, erstellen Sie die Routing-Regel.
So erstellen Sie die Routing-Regel
-
Wählen Sie auf der Registerkarte Routing-Details die Option Routing-Regel hinzufügen aus.
-
Wählen Sie Neue Bedingung hinzufügen und dann Pfad aus.
-
Geben Sie unter Pfad den Wert
orders/v2/items/categories/5ein. -
Wählen Sie für Leerzeichen des Basispfads entfernen die Option Aktiv aus.
Wählen Sie für Ziel-API Ihre Ziel-API aus.
Wählen Sie für Zielstufe Ihre Zielstufe aus.
-
Wählen Sie Weiter aus.
-
Geben Sie unter „Priorität“ eine Priorität ein.
Auch wenn Sie Ihre bestehende API-Zuweisung beibehalten, verwendet API Gateway immer die neue Routing-Regel, da Routing-Regeln stets Vorrang vor API-Zuweisungen haben.
Wählen Sie Änderungen speichern aus.
Nachdem Sie die Routing-Regel erstellt haben, aktualisieren Sie das Zugriffsprotokollformat für Ihre Stufe oder erstellen Sie ein neues Protokoll, um sicherzustellen, dass API Gateway Ihre Routing-Regel verwendet, um den Datenverkehr an Ihre API weiterzuleiten.
So aktualisieren Sie Ihre Zugriffsprotokolle
Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan
. Wählen Sie Ihre API aus.
Klicken Sie im Hauptnavigationsbereich auf Stufen.
Wählen Sie unter Protokolle und Ablaufverfolgung die Option Bearbeiten aus.
Wenn Sie keine Protokollgruppe haben, siehe Einrichten der CloudWatch-Protokollierung für eine REST-API in API Gateway.
Fügen Sie
$context.customDomain.routingRuleIdMatchedIhrem Protokollformat hinzu.Diese Protokollgruppe zeichnet die Routing-Regel-ID auf, die API Gateway verwendet hat, um Datenverkehr an Ihre API zu senden. Weitere Informationen finden Sie unter Ich kann nicht sagen, wie API Gateway Traffic an meinen gesendet hat APIs.
Wählen Sie Speichern aus.
Nachdem Sie Ihre Zugriffsprotokolle aktualisiert haben, rufen Sie Ihren benutzerdefinierten Domainnamen auf. Das folgende Beispiel zeigt einen curl-Befehl zum Aufrufen des benutzerdefinierten Domainnamens
https://mit dem Basispfadapi.example.comorders/v2/items/categories/5.curl "https://api.example.com/orders/v2/items/categories/5"Nachdem Sie Ihren benutzerdefinierten Domainnamen erfolgreich aufgerufen haben, vergewissern Sie sich, dass CloudWatch Logs das anzeigt.
routingRuleIdMatchedInformationen zur Verwendung der CloudWatch Logs-Konsole zum Anzeigen einer Protokollgruppe finden Sie unterAnzeigen von API Gateway-Protokollereignissen in der CloudWatch-Konsole. - AWS CLI
-
-
Verwenden Sie den folgenden update-domain-nameBefehl, um den Domainnamen
zu aktualisieren, um den Routing-Modus zu verwendenapi.example.comROUTING_RULE_THEN_API_MAPPING.aws apigatewayv2 update-domain-name \ --domain-name 'api.example.com' \ --routing-mode ROUTING_RULE_THEN_API_MAPPING -
Verwenden Sie den folgenden create-routing-ruleBefehl, um eine neue Routing-Regel zu erstellen, um die API-Zuordnung
https://neu zu erstellen.api.example.com/orders/v2/items/categories/5aws apigatewayv2 create-routing-rule \ --domain-name 'api.example.com' \ --priority 50 \ --conditions '[ { "MatchBasePaths": { "AnyOf": [ "orders/v2/items/categories/5" ] } } ]' \ --actions '[ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod", "StripBasePath": true } } ]' -
Verwenden Sie den folgenden Befehl update-stage, um das Format der Zugriffsprotokolle so zu aktualisieren, dass die Variable
$context.customDomain.routingRuleIdMatchedenthalten ist. Diese Variable zeichnet die Routing-Regel-ID auf, die API Gateway verwendet hat, um Datenverkehr an Ihre API zu senden. Sie verwenden dieses Protokoll als Bestätigung, dass API Gateway Ihre Routing-Regel verwendet, um Datenverkehr an Ihre API zu senden. Weitere Informationen finden Sie unter Ich kann nicht sagen, wie API Gateway Traffic an meinen gesendet hat APIs.aws apigateway update-stage \ --rest-api-ida1bc2c3\ --stage-name prod \ --patch-operations "op=replace,path=/accessLogSettings/format,value='\$context.path \$context.customDomain.routingRuleIdMatched \$context.requestId \$context.extendedRequestId'"Wenn Sie keine Protokollgruppe haben, siehe Einrichten der CloudWatch-Protokollierung für eine REST-API in API Gateway.
-
Verwenden Sie den folgenden curl-Befehl, um Ihren benutzerdefinierten Domainnamen mit dem Basispfad
orders/v2/items/categories/5aufzurufen.curl "https://api.example.com/orders/v2/items/categories/5 -
Verwenden Sie den folgenden filter-log-eventsBefehl, um die Protokollereignisse aus der Protokollgruppe abzurufen
access-log-group-orders, die die Routingregel-IDabc123enthalten.aws logs filter-log-events --log-group-name access-log-group-orders --filter-pattern abc123Damit wird bestätigt, dass API Gateway die Routing-Regel verwendet hat, um den Datenverkehr an Ihre API zu senden.
-