Erstellen Sie eine API-Zuordnung mithilfe von Routing-Regeln neu - 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.

Erstellen Sie eine API-Zuordnung mithilfe von Routing-Regeln neu

Sie können eine API-Zuordnung mithilfe von Routing-Regeln neu erstellen. Um eine API-Zuordnung neu zu erstellen, stellen Sie sicher, dass das Basispfad-Striping aktiviert ist. Dadurch bleibt das Verhalten von API-Zuordnungen erhalten. Weitere Informationen finden Sie unter Entfernen Sie den Basispfad mit den Bedingungen für den Basispfad.

Das folgende Tutorial zeigt, wie Sie die API-Zuordnung https:// api.example.com/orders/v2/items/categories/5 als Routing-Regel neu erstellen und wie Sie Ihre Zugriffsprotokolle aktualisieren, um die Routing-Regel zu protokollieren, die API Gateway verwendet, um Traffic an Ihre API zu senden.

AWS Management Console
Um den Routing-Modus auf ROUTING_RULE_THEN_ einzustellen API_MAPPING
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie Benutzerdefinierten Domänennamen im Hauptnavigationsbereich aus.

  3. Wählen Sie Ihren benutzerdefinierten Domainnamen.

  4. Wählen Sie für Domaindetails Bearbeiten aus.

  5. Wählen Sie für den Routing-Modus API_MAPPINGROUTING_RULE_THEN_.

  6. Wählen Sie Speichern.

Nachdem Sie den Routing-Modus festgelegt haben, erstellen Sie die Routing-Regel.

Um die Routing-Regel zu erstellen
  1. Wählen Sie auf der Registerkarte Routing-Details die Option Routing-Regel hinzufügen aus.

  2. Wählen Sie Neue Bedingung hinzufügen und dann Pfad aus.

  3. Geben Sie für Pfad den Wert einorders/v2/items/categories/5.

  4. Wählen Sie für Strip-Basispfad die Option Aktiv aus.

  5. Wählen Sie für Ziel-API Ihre Ziel-API aus.

  6. Wählen Sie für Zielphase Ihre Zielphase aus.

  7. Wählen Sie Weiter aus.

  8. Geben Sie für Priorität eine Priorität ein.

    Auch wenn Sie Ihre bestehende API-Zuordnung beibehalten, verwendet API Gateway immer die neue Routing-Regel, da Routing-Regeln immer Vorrang vor API-Zuordnungen haben.

  9. Wählen Sie Änderungen speichern aus.

Nachdem Sie die Routing-Regel erstellt haben, aktualisieren Sie das Zugriffsprotokollformat für Ihre Phase oder erstellen Sie ein neues Protokoll, um zu bestätigen, dass API Gateway Ihre Routing-Regel verwendet, um Traffic an Ihre API zu senden.

Um Ihre Zugriffsprotokolle zu aktualisieren
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie Ihre API aus.

  3. Klicken Sie im Hauptnavigationsbereich auf Stages (Stufen).

  4. Wählen Sie für Logs and Tracing die Option Bearbeiten aus.

    Wenn Sie keine Protokollgruppe haben, finden Sie weitere Informationen unterRichten Sie die CloudWatch Protokollierung für REST APIs in API Gateway ein.

  5. Fügen Sie $context.customDomain.routingRuleIdMatched es Ihrem Protokollformat hinzu.

    Diese Protokollgruppe zeichnet die Routing-Regel-ID auf, die API Gateway verwendet hat, um Traffic an Ihre API zu senden. Weitere Informationen finden Sie unter Ich kann nicht sagen, wie API Gateway Traffic an meinen gesendet hat APIs.

  6. Wählen Sie Save (Speichern) aus.

Nachdem Sie Ihre Zugriffsprotokolle aktualisiert haben, rufen Sie Ihren benutzerdefinierten Domainnamen auf. Im Folgenden finden Sie ein Beispiel für einen curl-Befehl zum Aufrufen des benutzerdefinierten Domainnamens https://api.example.com mit dem Basispfad. orders/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. routingRuleIdMatched Informationen zur Verwendung der CloudWatch Logs-Konsole zum Anzeigen einer Protokollgruppe finden Sie unterAPI Gateway Gateway-Protokollereignisse in der CloudWatch Konsole anzeigen.

AWS CLI
  1. Verwenden Sie den folgenden update-domain-nameBefehl, um den Domainnamen api.example.com zu aktualisieren, um den Routing-Modus zu verwendenROUTING_RULE_THEN_API_MAPPING.

    aws apigatewayv2 update-domain-name \ --domain-name 'api.example.com' \ --routing-mode ROUTING_RULE_THEN_API_MAPPING
  2. Verwenden Sie den folgenden create-routing-ruleBefehl, um eine neue Routing-Regel zu erstellen, um die API-Zuordnung https://api.example.com/orders/v2/items/categories/5 neu zu erstellen.

    aws 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 } } ]'
  3. Verwenden Sie den folgenden Befehl update-stage, um das Format der Zugriffsprotokolle so zu aktualisieren, dass es die Variable enthält. $context.customDomain.routingRuleIdMatched Diese Variable zeichnet die Routing-Regel-ID auf, die API Gateway verwendet hat, um Traffic an Ihre API zu senden. Sie verwenden dieses Protokoll, um zu bestätigen, dass API Gateway Ihre Routing-Regel verwendet, um Traffic 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-id a1bc2c3 \ --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, finden Sie weitere Informationen unterRichten Sie die CloudWatch Protokollierung für REST APIs in API Gateway ein.

  4. Verwenden Sie den folgenden CURL-Beispielbefehl, um Ihren benutzerdefinierten Domänennamen mit dem Basispfad aufzurufen. orders/v2/items/categories/5

    curl "https://api.example.com/orders/v2/items/categories/5
  5. Verwenden Sie den folgenden filter-log-eventsBefehl, um die Protokollereignisse aus der Protokollgruppe abzurufen, die access-log-group-orders die Routingregel-ID enthalten. abc123

    aws logs filter-log-events --log-group-name access-log-group-orders --filter-pattern abc123

    Dies bestätigt, dass API Gateway die Routing-Regel verwendet hat, um Traffic an Ihre API zu senden.