

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
<a name="rest-api-routing-rules-recreate-api-mapping"></a>

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](rest-api-routing-rules.md#rest-api-routing-rules-condition-path-split).

Das folgende Tutorial zeigt, wie Sie die API-Zuweisung `https:// api.example.com/orders/v2/items/categories/5` 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.

------
#### [ AWS-Managementkonsole ]

**Um den Routingmodus auf ROUTING\$1RULE\$1THEN\$1 einzustellen API\$1MAPPING**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie **Benutzerdefinierte Domainnamen** im Hauptnavigationsbereich aus. 

1. Wählen Sie Ihren benutzerdefinierten Domainnamen aus.

1. Wählen Sie unter **Domänendetails** die Option **Bearbeiten** aus.

1. **Wählen Sie für den **Routing-Modus ROUTING\$1RULE\$1THEN\$1**. API\$1MAPPING**

1. Wählen Sie **Speichern** aus. 

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

**So erstellen Sie die Routing-Regel**

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

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

1. Geben Sie unter **Pfad** den Wert **orders/v2/items/categories/5** ein.

1. Wählen Sie für **Leerzeichen des Basispfads entfernen** die Option **Aktiv** aus.

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

1. Wählen Sie für **Zielstufe** Ihre Zielstufe aus.

1. Wählen Sie **Weiter** aus.

1. 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.

1. 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**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie Ihre API aus.

1. Klicken Sie im Hauptnavigationsbereich auf **Stufen**.

1. Wählen Sie unter **Protokolle und Ablaufverfolgung** die Option **Bearbeiten** aus.

   Wenn Sie keine Protokollgruppe haben, siehe [Richten Sie die CloudWatch Protokollierung für REST APIs in API Gateway ein](set-up-logging.md).

1. Fügen Sie **\$1context.customDomain.routingRuleIdMatched** Ihrem 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](rest-api-routing-rules-troubleshoot.md#rest-api-routing-rules-logging).

1. 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://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 unter[API Gateway Gateway-Protokollereignisse in der CloudWatch Konsole anzeigen](view-cloudwatch-log-events-in-cloudwatch-console.md).

------
#### [ AWS CLI ]

1. Verwenden Sie den folgenden [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-domain-name.html)Befehl, um den Domainnamen `api.example.com` zu aktualisieren, um den Routing-Modus zu verwenden`ROUTING_RULE_THEN_API_MAPPING`.

   ```
   aws apigatewayv2 update-domain-name \
     --domain-name 'api.example.com' \
     --routing-mode ROUTING_RULE_THEN_API_MAPPING
   ```

1. Verwenden Sie den folgenden [create-routing-rule](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-routing-rule.html)Befehl, 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
       }
     }
   ]'
   ```

1. Verwenden Sie den folgenden Befehl [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html), um das Format der Zugriffsprotokolle so zu aktualisieren, dass die Variable `$context.customDomain.routingRuleIdMatched` enthalten 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](rest-api-routing-rules-troubleshoot.md#rest-api-routing-rules-logging).

   ```
   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, siehe [Richten Sie die CloudWatch Protokollierung für REST APIs in API Gateway ein](set-up-logging.md).

1. Verwenden Sie den folgenden curl-Befehl, um Ihren benutzerdefinierten Domainnamen mit dem Basispfad `orders/v2/items/categories/5` aufzurufen.

   ```
   curl "https://api.example.com/orders/v2/items/categories/5
   ```

1. Verwenden Sie den folgenden [filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html)Befehl, um die Protokollereignisse aus der Protokollgruppe abzurufen`access-log-group-orders`, die die Routingregel-ID `abc123` enthalten.

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

    Damit wird bestätigt, dass API Gateway die Routing-Regel verwendet hat, um den Datenverkehr an Ihre API zu senden.

------