

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.

# Routen
<a name="routes"></a>

**Wichtig**  
Hinweis zum Ende des Supports: Am 30. September 2026 AWS wird der Support für eingestellt. AWS App Mesh Nach dem 30. September 2026 können Sie nicht mehr auf die AWS App Mesh Konsole oder die Ressourcen zugreifen. AWS App Mesh Weitere Informationen finden Sie in diesem Blogbeitrag [Migration von AWS App Mesh zu Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect). 

Eine Route ist einem virtuellen Router zugeordnet. Die Route wird verwendet, um Anfragen für den virtuellen Router abzugleichen und den Verkehr an die zugehörigen virtuellen Knoten zu verteilen. Wenn eine Route mit einer Anfrage übereinstimmt, kann sie den Verkehr auf einen oder mehrere virtuelle Zielknoten verteilen. Sie können für jeden virtuellen Knoten eine relative Gewichtung angeben. Dieses Thema hilft Ihnen bei der Arbeit mit Routen in einem Service Mesh.

## Eine Route erstellen
<a name="create-route"></a>

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

**Um eine Route mit dem zu erstellen AWS-Managementkonsole**

1. Öffnen Sie die App Mesh Mesh-Konsole unter [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Wählen Sie das Mesh aus, in dem Sie die Route erstellen möchten. Alle Netze, die Sie besitzen und die mit Ihnen [geteilt](sharing.md) wurden, werden aufgelistet.

1. Wählen Sie im linken Navigationsbereich die Option **Virtual routers (Virtuelle Router)** aus.

1. Wählen Sie den virtuellen Router aus, dem Sie eine neue Route zuordnen möchten. Wenn keine aufgeführt sind, müssen Sie zuerst [einen virtuellen Router erstellen](virtual_routers.md#create-virtual-router).

1. Wählen Sie in der Tabelle **Routes (Routen)** die Option **Create route (Route erstellen)**. Um eine Route zu erstellen, muss Ihre Konto-ID als **Ressourcenbesitzer** der Route aufgeführt sein.

1. Geben Sie unter **Route name (Routen-Name)** den Namen ein, der für Ihre Route verwendet werden soll.

1. Wählen Sie **unter Routentyp** das Protokoll aus, das Sie weiterleiten möchten. Das von Ihnen ausgewählte Protokoll muss mit dem Listener-Protokoll übereinstimmen, das Sie für Ihren virtuellen Router und den virtuellen Knoten ausgewählt haben, zu dem Sie den Datenverkehr weiterleiten.

1. (Optional) Geben Sie für **Routenpriorität eine Priorität** zwischen 0 und 1000 an, die für Ihre Route verwendet werden soll. Routen werden auf Grundlage des angegebenen Werts zugewiesen, wobei 0 die höchste Priorität darstellt.

1. (Optional) Wählen Sie **Zusätzliche Konfiguration**. Wählen Sie aus den unten aufgeführten Protokollen das Protokoll aus, das Sie als **Routentyp** ausgewählt haben, und geben Sie die gewünschten Einstellungen in der Konsole an.

1. Wählen Sie für die **Zielkonfiguration** den vorhandenen virtuellen App Mesh-Knoten aus, an den der Datenverkehr weitergeleitet werden soll, und geben Sie ein **Gewicht** an. Sie können **Ziel hinzufügen** wählen, um weitere Ziele hinzuzufügen. Die Summe der Prozentsätze für alle Ziele muss 100 ergeben. Wenn keine virtuellen Knoten aufgeführt sind, müssen Sie zuerst einen [erstellen](virtual_nodes.md#vn-create-virtual-node). Wenn der ausgewählte virtuelle Knoten über mehrere Listener verfügt, ist der **Zielport** **erforderlich**.

1. Geben Sie für die **Match-Konfiguration** Folgendes an:

   *Die **Match-Konfiguration** ist nicht verfügbar für `tcp`*
   + 

     Wenn **http/http2 der gewählte** Typ ist:
     + **(Optional) **Methode** ‐ gibt den Methodenheader an, der in den eingehenden **http/http2-Anfragen** abgeglichen werden soll.**
     + (Optional) **Port Match — Ordnet** den Port für den eingehenden Verkehr zu. Eine Portübereinstimmung ist **erforderlich**, wenn dieser virtuelle Router über mehrere Listener verfügt.
     + (Optional) **Prefix/Exact/RegexPfad** — Methode zum Abgleichen des Pfads der URL.
       + **Präfixabgleich** — Eine übereinstimmende Anfrage einer Gateway-Route wird standardmäßig in den Namen des virtuellen Zieldienstes und das entsprechende Präfix `/` umgeschrieben. Je nachdem, wie Sie Ihren virtuellen Dienst konfigurieren, könnte dieser einen virtuellen Router verwenden, um die Anfrage anhand bestimmter Präfixe oder Header an verschiedene virtuelle Knoten weiterzuleiten. 
**Anmerkung**  
Wenn Sie den auf **Pfad** und **Präfix** basierenden Abgleich aktivieren, aktiviert App Mesh die Pfadnormalisierung ([normalize\_path](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-normalize-path) und [merge\_slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes)), um die Wahrscheinlichkeit von Pfadverwirrungsschwachstellen zu minimieren.  
Sicherheitslücken mit Pfadverwirrungen treten auf, wenn an der Anfrage beteiligte Parteien unterschiedliche Pfaddarstellungen verwenden.
       + **Exakte Übereinstimmung** — Der exakte Parameter deaktiviert den teilweisen Abgleich für eine Route und stellt sicher, dass die Route nur zurückgegeben wird, wenn der Pfad EXAKT mit der aktuellen URL übereinstimmt.
       + **Regex-Übereinstimmung** — wird verwendet, um Muster zu beschreiben, bei denen mehrere tatsächlich eine einzelne Seite auf der Website identifizieren URLs können.
     + (Optional) **Abfrageparameter** — in diesem Feld können Sie die Abfrageparameter abgleichen.
     + **(Optional) **Headers** ‐ gibt die Header für **http** und http2 an.** Es sollte mit der eingehenden Anfrage übereinstimmen, um an den virtuellen Zieldienst weitergeleitet zu werden.
   + 

     Wenn **grpc** der gewählte Typ ist:
     + **Dienstname** — der Zieldienst, für den die Anfrage abgeglichen werden soll.
     + **Methodenname** — die Zielmethode, für die die Anfrage abgeglichen werden soll.
     + (Optional) **Metadaten** — gibt `Match` anhand des Vorhandenseins von Metadaten an. Alle müssen übereinstimmen, damit die Anfrage bearbeitet werden kann.

1. Wählen Sie **Route erstellen** aus.

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

**Um eine Route mit dem zu erstellen AWS CLI.**

Erstellen Sie eine gRPC-Route mit dem folgenden Befehl und geben Sie JSON ein (ersetzen Sie die {{red}} Werte durch Ihre eigenen):

1. 

   ```
   aws appmesh create-route \
        --cli-input-json file://create-route-grpc.json
   ```

1. Inhalt des **Beispiels .json** create-route-grpc

   ```
   {
       "meshName" : "meshName",
       "routeName" : "routeName",
       "spec" : {
          "grpcRoute" : {
             "action" : {
                "weightedTargets" : [
                   {
                      "virtualNode" : "nodeName",
                      "weight" : 100
                   }
                ]
             },
             "match" : {
                "metadata" : [
                   {
                      "invert" : false,
                      "match" : {
                         "prefix" : "123"
                      },
                      "name" : "myMetadata"
                   }
                ],
                "methodName" : "nameOfmethod",
                "serviceName" : "serviceA.svc.cluster.local"
             },
             "retryPolicy" : {
                "grpcRetryEvents" : [ "deadline-exceeded" ],
                "httpRetryEvents" : [ "server-error", "gateway-error" ],
                "maxRetries" : 3,
                "perRetryTimeout" : {
                   "unit" : "s",
                   "value" : 15
                },
                "tcpRetryEvents" : [ "connection-error" ]
             }
          },
          "priority" : 100
       },
       "virtualRouterName" : "routerName"
   }
   ```

1. Beispielausgabe:

   ```
   {
       "route": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:{{us-west-2}}:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName",
               "createdAt": "2022-04-06T13:48:20.749000-05:00",
               "lastUpdatedAt": "2022-04-06T13:48:20.749000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "routeName": "routeName",
           "spec": {
               "grpcRoute": {
                   "action": {
                       "weightedTargets": [
                           {
                               "virtualNode": "nodeName",
                               "weight": 100
                           }
                       ]
                   },
                   "match": {
                       "metadata": [
                           {
                               "invert": false,
                               "match": {
                                   "prefix": "123"
                               },
                               "name": "myMetadata"
                           }
                       ],
                       "methodName": "nameOfMehod",
                       "serviceName": "serviceA.svc.cluster.local"
                   },
                   "retryPolicy": {
   "grpcRetryEvents": [
                           "deadline-exceeded"
                       ],
                       "httpRetryEvents": [
                           "server-error",
                           "gateway-error"
                       ],
                       "maxRetries": 3,
                       "perRetryTimeout": {
                           "unit": "s",
                           "value": 15
                       },
                       "tcpRetryEvents": [
                           "connection-error"
                       ]
                   }
               },
               "priority": 100
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualRouterName": "routerName"
       }
   }
   ```

Weitere Informationen zum Erstellen einer Route mit dem AWS CLI for App Mesh finden Sie unter dem Befehl [create-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-route.html) in der AWS CLI Referenz.

------

### gRPC
<a name="grpc"></a>

### **(Optional) Abgleichen**

+ (Optional) Geben Sie den **Dienstnamen** des Zieldienstes ein, der der Anfrage entspricht. Wenn Sie keinen Namen angeben, werden Anfragen an einen beliebigen Dienst zugeordnet.
+ (Optional) Geben Sie den **Methodennamen** der Zielmethode ein, die der Anfrage entspricht. Wenn Sie keinen Namen angeben, werden Anfragen an jede Methode abgeglichen. Wenn Sie einen Methodennamen angeben, müssen Sie einen Dienstnamen angeben.

### (Optional) **Metadaten**


Wählen Sie **Metadaten hinzufügen** aus.
+ (Optional) Geben Sie den **Namen der Metadaten** ein, auf deren Grundlage Sie weiterleiten möchten, wählen Sie einen **Übereinstimmungstyp** und geben Sie einen **Übereinstimmungswert** ein. Wenn Sie „**Invertieren**“ wählen, entspricht dies dem Gegenteil. Wenn Sie beispielsweise den **Metadatennamen**`myMetadata`, den **Übereinstimmungstyp** **Exakt** und einen **Übereinstimmungswert** von `123` angeben und **Invertieren** auswählen, wird die Route für jede Anfrage abgeglichen, deren Metadatenname mit einem anderen Namen als beginnt. `123`
+ (Optional) Wählen Sie **Metadaten hinzufügen** aus, um bis zu zehn Metadatenelemente hinzuzufügen. 

### (Optional) Richtlinie **erneut versuchen**


Eine Wiederholungsrichtlinie ermöglicht Clients, sich vor zeitweiligen Netzwerkausfällen oder zeitweiligen serverseitigen Ausfällen zu schützen. Eine Wiederholungsrichtlinie ist optional, wird aber empfohlen. Die Werte für das Wiederholungs-Timeout definieren das Timeout pro Wiederholungsversuch (einschließlich des ersten Versuchs). Wenn Sie keine Wiederholungsrichtlinie definieren, erstellt App Mesh möglicherweise automatisch eine Standardrichtlinie für jede Ihrer Routen. Weitere Informationen finden Sie unter [Standardrichtlinie für die Wiederholung von Routen](envoy-defaults.md#default-retry-policy).
+ Geben Sie unter **Timeout für Wiederholungsversuche** die Anzahl der Einheiten für die Timeout-Dauer ein. Ein Wert ist erforderlich, wenn Sie ein Protokollwiederholungsereignis auswählen.
+ Wählen **Sie für „Timeout-Einheit wiederholen“ eine Einheit** aus. Ein Wert ist erforderlich, wenn Sie ein Protokollwiederholungsereignis auswählen.
+ Geben Sie **unter Max. Wiederholungen** die maximale Anzahl von Wiederholungsversuchen ein, wenn die Anfrage fehlschlägt. Ein Wert ist erforderlich, wenn Sie ein Protokollwiederholungsereignis auswählen. Wir empfehlen einen Wert von mindestens zwei.
+ Wählen Sie ein oder mehrere **HTTP-Wiederholungsereignisse aus**. **Wir empfehlen, mindestens **Stream-Error und Gateway-Error** auszuwählen.**
+ **Wählen Sie ein TCP-Wiederholungsereignis aus.**
+ Wählen Sie ein oder mehrere **gRPC-Wiederholungsereignisse aus**. **Wir empfehlen, mindestens **storniert** und nicht verfügbar auszuwählen.**

### **(Optional) Timeouts**

+ Die Standardeinstellung ist 15 Sekunden. Wenn Sie eine **Wiederholungsrichtlinie** angegeben haben, sollte die Dauer, die Sie hier angeben, immer größer oder gleich der Wiederholungsdauer sein, multipliziert mit der **maximalen Anzahl von Wiederholungen, die Sie in der Wiederholungsrichtlinie** definiert haben, damit Ihre **Wiederholungsrichtlinie** abgeschlossen werden kann. **Wenn Sie eine Dauer von mehr als 15 Sekunden angeben, stellen Sie sicher, dass das für den Listener eines beliebigen virtuellen Knotenziels angegebene Timeout ebenfalls größer als 15 Sekunden ist.** Weitere Informationen finden Sie unter [Virtuelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html) Knoten.
+ Durch einen Wert des Typs `0` wird der Timout deaktiviert. 
+ Die maximale Zeit, während der die Route inaktiv sein kann.

### HTTP und HTTP/2
<a name="http-http2"></a>

### (Fakultativ) Übereinstimmung

+ Geben Sie das **Präfix** an, dem die Route entsprechen soll. Beispiel: Wenn der Name Ihres virtuellen Service `service-b.local` lautet und die Route Anforderungen `service-b.local/metrics` zuordnen soll, sollte das Präfix `/metrics` lauten. Geben Sie `/` Routen für den gesamten Verkehr an.
+ (Optional) Wählen Sie eine **Methode** aus. 
+ (Optional) Wählen Sie ein **Schema** aus. Gilt nur für HTTP2 Routen. 

### (Optional) Kopfzeilen

+ (Optional) Wählen Sie **Kopfzeile hinzufügen** aus. Geben Sie den **Namen der Kopfzeile** ein, auf deren Grundlage Sie weiterleiten möchten, wählen Sie einen **Übereinstimmungstyp** und geben Sie einen **Übereinstimmungswert** ein. Wenn Sie **Invertieren** auswählen, entspricht dies dem Gegenteil. Wenn Sie beispielsweise einen Header `clientRequestId` mit dem **Präfix** von `123` angeben und **Invertieren** auswählen, wird die Route für jede Anfrage abgeglichen, deren Header mit etwas anderem als beginnt. `123`
+ (Optional) Wählen Sie „**Kopfzeile hinzufügen**“ aus. Sie können bis zu zehn Header hinzufügen. 

### **(Optional) Richtlinie erneut versuchen**


Eine Wiederholungsrichtlinie ermöglicht Clients, sich vor zeitweiligen Netzwerkausfällen oder zeitweiligen serverseitigen Ausfällen zu schützen. Eine Wiederholungsrichtlinie ist optional, wird aber empfohlen. Die Werte für das Wiederholungs-Timeout definieren das Timeout pro Wiederholungsversuch (einschließlich des ersten Versuchs). Wenn Sie keine Wiederholungsrichtlinie definieren, erstellt App Mesh möglicherweise automatisch eine Standardrichtlinie für jede Ihrer Routen. Weitere Informationen finden Sie unter [Standardrichtlinie für die Wiederholung von Routen](envoy-defaults.md#default-retry-policy).
+ Geben Sie unter **Timeout für Wiederholungsversuche** die Anzahl der Einheiten für die Timeout-Dauer ein. Ein Wert ist erforderlich, wenn Sie ein Protokollwiederholungsereignis auswählen.
+ Wählen **Sie für „Timeout-Einheit wiederholen“ eine Einheit** aus. Ein Wert ist erforderlich, wenn Sie ein Protokollwiederholungsereignis auswählen.
+ Geben Sie **unter Max. Wiederholungen** die maximale Anzahl von Wiederholungsversuchen ein, wenn die Anfrage fehlschlägt. Ein Wert ist erforderlich, wenn Sie ein Protokollwiederholungsereignis auswählen. Wir empfehlen einen Wert von mindestens zwei.
+ Wählen Sie ein oder mehrere **HTTP-Wiederholungsereignisse aus**. **Wir empfehlen, mindestens **Stream-Error und Gateway-Error** auszuwählen.**
+ **Wählen Sie ein TCP-Wiederholungsereignis aus.**

### **(Optional) Timeouts**

+ **Timeout für Anfragen** — Die Standardeinstellung ist 15 Sekunden. Wenn Sie eine **Wiederholungsrichtlinie** angegeben haben, sollte die Dauer, die Sie hier angeben, immer größer oder gleich der Wiederholungsdauer sein, multipliziert mit der **maximalen Anzahl von Wiederholungen, die Sie in der Wiederholungsrichtlinie** definiert haben, damit Ihre **Wiederholungsrichtlinie abgeschlossen** werden kann.
+ **Dauer im Leerlauf — Die Standardeinstellung** ist 300 Sekunden.
+ Durch einen Wert des Typs `0` wird der Timout deaktiviert.

**Anmerkung**  
 Wenn Sie ein Timeout angeben, das über dem Standard liegt, stellen Sie sicher, dass das für den Listener für alle Teilnehmer des virtuellen Knotens angegebene Timeout ebenfalls höher als der Standard ist. Wenn Sie das Timeout jedoch auf einen Wert reduzieren, der unter dem Standardwert liegt, ist es optional, das Timeout an virtuellen Knoten zu aktualisieren. Weitere Informationen finden Sie unter [Virtuelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html) Knoten.

### TCP
<a name="tcp"></a>

### **(Optional) Timeouts**

+ **Dauer des Leerlaufs** — Die Standardeinstellung ist 300 Sekunden.
+ Durch einen Wert des Typs `0` wird der Timout deaktiviert.

## Eine Route löschen
<a name="delete-route"></a>

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

**Um eine Route mit dem zu löschen AWS-Managementkonsole**

1. Öffnen Sie die App Mesh Mesh-Konsole unter [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Wählen Sie das Mesh aus, aus dem Sie eine Route löschen möchten. Alle Netze, die Sie besitzen und die mit Ihnen [geteilt](sharing.md) wurden, werden aufgelistet.

1. Wählen Sie im linken Navigationsbereich die Option **Virtual routers (Virtuelle Router)** aus.

1. Wählen Sie den Router aus, von dem Sie eine Route löschen möchten.

1. Wählen Sie in der Tabelle **Routen** die Route aus, die Sie löschen möchten, und wählen Sie in der oberen rechten Ecke **Löschen** aus.

1. Geben Sie in das Bestätigungsfeld ein **delete** und klicken Sie dann auf **Löschen**.

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

**Um eine Route mit dem zu löschen AWS CLI**

1. Verwenden Sie den folgenden Befehl, um Ihre Route zu löschen (ersetzen Sie die {{red}} Werte durch Ihre eigenen):

   ```
   aws appmesh delete-route \
        --mesh-name {{meshName}} \
        --virtual-router-name {{routerName}} \
        --route-name {{routeName}}
   ```

1. Beispielausgabe:

   ```
   {
       "route": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:{{us-west-2}}:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName",
               "createdAt": "2022-04-06T13:46:54.750000-05:00",
               "lastUpdatedAt": "2022-04-07T10:43:57.152000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "routeName": "routeName",
           "spec": {
               "grpcRoute": {
                   "action": {
                       "weightedTargets": [
                           {
                               "virtualNode": "nodeName",
                               "weight": 100
                           }
                       ]
                   },
                   "match": {
                       "metadata": [
                           {
                               "invert": false,
                               "match": {
                                   "prefix": "123"
                               },
                               "name": "myMetadata"
                           }
                       ],
                       "methodName": "methodName",
                       "serviceName": "serviceA.svc.cluster.local"
                   },
                   "retryPolicy": {
                       "grpcRetryEvents": [
                           "deadline-exceeded"
                       ],
                       "httpRetryEvents": [
                           "server-error",
                           "gateway-error"
                       ],
                       "maxRetries": 3,
                       "perRetryTimeout": {
                           "unit": "s",
                           "value": 15
                       },
                       "tcpRetryEvents": [
                           "connection-error"
                       ]
                   }
               },
               "priority": 100
           },
           "status": {
               "status": "DELETED"
           },
           "virtualRouterName": "routerName"
       }
   }
   ```

Weitere Informationen zum Löschen einer Route mit dem AWS CLI for App Mesh finden Sie unter dem Befehl [delete-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-route.html) in der Referenz. AWS CLI 

------