

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.

# Listener-Regeln für Ihren Application Load Balancer
<a name="listener-rules"></a>

Die Listener-Regeln für Ihren Application Load Balancer bestimmen, wie er Anfragen an Ziele weiterleitet. Wenn ein Listener eine Anfrage erhält, bewertet er die Anfrage anhand der einzelnen Regeln in der Reihenfolge ihrer Priorität, beginnend mit der Regel mit der niedrigsten Nummer. Jede Regel enthält Bedingungen, die erfüllt werden müssen, und die Aktionen, die ausgeführt werden müssen, wenn die Bedingungen für die Regel erfüllt sind. Dieser flexible Routing-Mechanismus ermöglicht es Ihnen, ausgeklügelte Muster für die Verteilung des Datenverkehrs zu implementieren, mehrere Anwendungen oder Microservices hinter einem einzigen Load Balancer zu unterstützen und die Bearbeitung von Anfragen an die spezifischen Anforderungen Ihrer Anwendung anzupassen.

**Grundlagen der Regeln**
+ Jede Regel besteht aus den folgenden Komponenten: Priorität, Aktionen, Bedingungen und optionale Transformationen.
+ Jede Regelaktion hat einen Typ und die Informationen, die zur Ausführung der Aktion erforderlich sind.
+ Jede Regelbedingung hat einen Typ und die Informationen, die zur Bewertung der Bedingung erforderlich sind.
+ Jede Regeltransformation hat einen passenden regulären Ausdruck und eine Ersatzzeichenfolge.
+ Beim Erstellen eines Listeners definieren Sie Aktionen für die Standardregel. Die Standardregel kann keine Bedingungen oder Transformationen haben. Wenn keine der Bedingungen für andere Regeln erfüllt ist, wird die Aktion für die Standardregel ausgeführt.
+ Regeln werden in der Reihenfolge ihrer Prioritäten bewertet, ausgehend vom niedrigsten Wert hin zum höchsten Wert. Die Standardregel wird zuletzt ausgewertet. Sie können die Priorität der Standardregel nicht ändern.
+ Jede Regel muss genau eine der folgenden Aktionen enthalten: `forward`, `redirect` oder `fixed-response`. Außerdem muss es die letzte auszuführende Regel sein.
+ Jede Regel außer der Standardregel kann optional eine der folgenden Bedingungen enthalten: `host-header``http-request-method`,`path-pattern`, und`source-ip`. Sie kann optional auch eine oder beide der folgenden Bedingungen enthalten: `http-header` und`query-string`.
+ Jede Regel außer der Standardregel kann optional eine Host-Header-Rewrite-Transformation und eine URL-Rewrite-Transformation enthalten.
+ Sie können bis zu drei Vergleichszeichenfolgen pro Bedingung und bis zu fünf pro Regel angeben.

**Topics**
+ [Aktionstypen](rule-action-types.md)
+ [Zustandstypen](rule-condition-types.md)
+ [Transformiert](rule-transforms.md)
+ [Hinzufügen einer Regel](add-rule.md)
+ [Bearbeiten einer Regel](edit-rule.md)
+ [Löschen einer Regel](delete-rule.md)

# Aktionstypen für Listener-Regeln
<a name="rule-action-types"></a>

Aktionen bestimmen, wie ein Load Balancer Anfragen verarbeitet, wenn die Bedingungen für eine Listener-Regel erfüllt sind. Jede Regel muss mindestens eine Aktion enthalten, die festlegt, wie die entsprechenden Anfragen behandelt werden sollen. Jede Regelaktion hat einen Typ und Konfigurationsinformationen. Application Load Balancers unterstützen die folgenden Aktionstypen für Listener-Regeln.Aktionstypen

`authenticate-cognito`  
[HTTPS-Listener] Verwenden von Amazon Cognito zum Authentifizieren von Benutzern. Weitere Informationen finden Sie unter [Benutzerauthentifizierung](listener-authenticate-users.md).

`authenticate-oidc`  
[HTTPS-Listener] Verwenden eines Identitätsanbieters, der mit OpenID Connect (OIDC) konform ist, um Benutzer zu authentifizieren Weitere Informationen finden Sie unter [Benutzerauthentifizierung](listener-authenticate-users.md).

`fixed-response`  
Zurückgeben einer benutzerdefinierten HTTP-Antwort Weitere Informationen finden Sie unter [Aktionen mit feststehender Antwort](#fixed-response-actions).

`forward`  
Weiterleiten von Anforderungen an die angegebenen Zielgruppen. Weitere Informationen finden Sie unter [Weiterleitungsaktionen](#forward-actions).

`jwt-validation`  
Validieren Sie JWT-Zugriffstoken in Client-Anfragen. Weitere Informationen finden Sie unter [JWT-Überprüfung](listener-verify-jwt.md).

`redirect`  
Weiterleiten von Anforderungen von einer URL an eine andere Weitere Informationen finden Sie unter [Weiterleitungsaktionen](#redirect-actions).

**Grundlagen der Aktion**
+ Jede Regel muss genau eine der folgenden Routing-Aktionen enthalten:`forward`,, oder `redirect``fixed-response`, und es muss sich um die letzte Aktion handeln, die ausgeführt werden muss.
+ Ein HTTPS-Listener kann eine Regel mit einer Benutzerauthentifizierungsaktion und einer Routing-Aktion haben.
+ Wenn es mehrere Aktionen gibt, wird die Aktion mit der niedrigsten Priorität zuerst ausgeführt.
+ Wenn die Protokollversion gRPC oder HTTP/2 ist, sind `forward`-Aktionen die einzigen unterstützten Aktionen.

## Aktionen mit feststehender Antwort
<a name="fixed-response-actions"></a>

Eine `fixed-response` Aktion löscht Client-Anfragen und gibt eine benutzerdefinierte HTTP-Antwort zurück. Sie können mit dieser Aktion einen 2XX-, 4XX- 5XX-Antwortcode und optional eine Nachricht zurückgeben.

Wenn eine `fixed-response`-Aktion ausgeführt wird, werden die Aktion und die URL des Weiterleitungsziels in den Zugriffsprotokollen aufgezeichnet. Weitere Informationen finden Sie unter [Zugriffsprotokolleinträge](load-balancer-access-logs.md#access-log-entry-format). Die Anzahl der erfolgreichen `fixed-response`-Aktionen wird in der Metrik `HTTP_Fixed_Response_Count` erfasst. Weitere Informationen finden Sie unter [Application-Load-Balancer-Metriken](load-balancer-cloudwatch-metrics.md#load-balancer-metrics-alb).

**Example Beispiel für eine Aktion mit einer festen Antwort**  
Sie können eine Aktion angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Mit der folgenden Aktion wird mit dem angegebenen Statuscode und dem Textkörper eine festgelegte Antwort gesendet.  

```
[
  {
      "Type": "fixed-response",
      "FixedResponseConfig": {
          "StatusCode": "200",
          "ContentType": "text/plain",
          "MessageBody": "Hello world"
      }
  }
]
```

## Weiterleitungsaktionen
<a name="forward-actions"></a>

Eine `forward`-Aktion leitet Anforderungen an ihre Zielgruppe weiter. Bevor Sie eine `forward`-Aktion hinzufügen, erstellen Sie ihre Zielgruppe und fügen Sie Ziele hinzu. Weitere Informationen finden Sie unter [Erstellen einer Zielgruppe](create-target-group.md).

**Verteilen Sie den Traffic auf mehrere Zielgruppen**  
Wenn Sie mehrere Zielgruppen für eine `forward`-Aktion angeben, müssen Sie für jede Zielgruppe eine Gewichtung angeben. Jede Zielgruppengewichtung ist ein Wert zwischen 0 und 999. Anforderungen, die einer Listener-Regel mit gewichteten Zielgruppen entsprechen, werden basierend auf ihren Gewichtungen an diese Zielgruppen verteilt. Wenn Sie beispielsweise zwei Zielgruppen mit einer Gewichtung von 10 angeben, erhält jede Zielgruppe die Hälfte der Anforderungen. Wenn Sie zwei Zielgruppen angeben, eine mit einer Gewichtung von 10 und die andere mit einer Gewichtung von 20, erhält die Zielgruppe mit der Gewichtung von 20 doppelt so viele Anforderungen wie die andere Zielgruppe.

Wenn Sie eine Regel zur Verteilung des Traffics auf gewichtete Zielgruppen konfigurieren und eine der Zielgruppen leer ist oder nur fehlerhafte Ziele hat, führt der Load Balancer nicht automatisch ein Failover zu einer Zielgruppe mit fehlerfreien Zielen durch.

**Sticky Sessions und gewichtete Zielgruppen**  


Standardmäßig garantiert das Konfigurieren einer Regel für die Verteilung des Datenverkehrs zwischen gewichteten Zielgruppen nicht, dass Sticky Sessions eingehalten werden. Um sicherzustellen, dass Sticky Sessions eingehalten werden, aktivieren Sie die Klebrigkeit der Zielgruppe für die Regel. Wenn der Load Balancer eine Anfrage zum ersten Mal an eine gewichtete Zielgruppe weiterleitet, generiert er ein Cookie mit dem Namen AWSALBTG , das Informationen über die ausgewählte Zielgruppe kodiert, das Cookie verschlüsselt und das Cookie in die Antwort an den Client einbezieht. Der Client sollte das erhaltene Cookie in nachfolgende Anfragen an den Load Balancer aufnehmen. Wenn der Load Balancer eine Anforderung empfängt, die mit einer Regel mit aktivierter Zielgruppenklebrigkeit übereinstimmt und das Cookie enthält, wird die Anforderung an die im Cookie angegebene Zielgruppe weitergeleitet.

Application Load Balancer unterstützen keine Cookie-Werte, die URL-codiert sind.

Bei CORS (Cross-Origin Resource Sharing)-Anforderungen benötigen einige Browser `SameSite=None; Secure` zum Aktivieren von Stickiness. In diesem Fall generiert Elastic Load Balancing ein zweites Cookie AWSALBTGCORS, das dieselben Informationen wie das ursprüngliche Stickiness-Cookie plus dieses `SameSite` Attribut enthält. Kunden erhalten beide Cookies.

### Beispiel einer Weiterleitungsaktion mit einer Zielgruppe
<a name="forward-action-cli"></a>

Sie können eine Aktion angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Die folgende Aktion leitet die Anforderungen an die angegebene Zielgruppe weiter.

```
[
  {
      "Type": "forward",
      "ForwardConfig": {
          "TargetGroups": [
              {
                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
              }
          ]
      }
  }
]
```

### Beispiel für zukunftsorientiertes Handeln mit gewichteten Zielgruppen
<a name="forward-action-multiple-target-groups-cli"></a>

Die folgende Aktion leitet Anforderungen an die beiden angegebenen Zielgruppen basierend auf der Gewichtung jeder Zielgruppe weiter.

```
[
  {
      "Type": "forward",
      "ForwardConfig": {
          "TargetGroups": [
              {
                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-targets/73e2d6bc24d8a067",
                  "Weight": 10
              },
              {
                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-targets/09966783158cda59",
                  "Weight": 20
              }
          ]
      }
  }
]
```

### Beispiel einer Weiterleitungsaktion mit aktivierter Stickiness
<a name="forward-action-stickiness-cli"></a>

Wenn Sie über eine Weiterleitungsaktion mit mehreren Zielgruppen verfügen und für eine oder mehrere Zielgruppen [Sticky Sessions](edit-target-group-attributes.md#sticky-sessions) aktiviert sind, müssen Sie die Stickiness der Zielgruppe aktivieren.

Die folgende Aktion leitet Anforderungen an die beiden angegebenen Zielgruppen weiter, wobei die Klebrigkeit der Zielgruppe aktiviert ist. Anforderungen, die die Stickiness-Cookies nicht enthalten, werden basierend auf der Gewichtung jeder Zielgruppe weitergeleitet.

```
[
  {
      "Type": "forward",
      "ForwardConfig": {
          "TargetGroups": [
              {
                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-targets/73e2d6bc24d8a067",
                  "Weight": 10
              },
              {
                  "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-targets/09966783158cda59",
                  "Weight": 20
              }
          ],
          "TargetGroupStickinessConfig": {
              "Enabled": true,
              "DurationSeconds": 1000
          }
      }
  }
]
```

## Weiterleitungsaktionen
<a name="redirect-actions"></a>

Eine `redirect` Aktion leitet Kundenanfragen von einer URL zu einer anderen weiter. Konfigurieren Sie Weiterleitungen je nach Bedarf entweder als temporär (HTTP 302) oder permanent (HTTP 301).

eine URI umfasst folgende Komponenten:

```
protocol://hostname:port/path?query
```

Sie müssen mindestens eine der folgenden Komponenten modifizieren, um eine Weiterleitungsschleife zu verhindern: Protokoll, Hostname, Port oder Pfad. Für alle Komponenten, an denen Sie keine Änderungen vornehmen, wird der ursprüngliche Wert beibehalten.

*Protokoll*  
Das Protokoll (HTTP oder HTTPS). Sie können von HTTP nach HTTP, von HTTP nach HTTPS und von HTTPS nach HTTPS weiterleiten. Eine Weiterleitung von HTTPS nach HTTP ist nicht möglich.

*hostname*  
Der Hostname Bei einem Hostnamen wird die Groß- und Kleinschreibung nicht beachtet. Er kann bis zu 128 Zeichen lang sein und aus alphanumerischen Zeichen, Platzhaltern (\$1 und ?) und Bindestrichen (-) bestehen.

*port*  
Der Port (1 bis 65535)

*Pfad*  
Der absolute Pfad, beginnend mit dem vorangestellten "/" Bei einem Pfad muss die Groß- und Kleinschreibung nicht beachtet werden. Er kann 128 Zeichen lang sein und aus alphanumerischen Zeichen, Platzhaltern (\$1 und ?), & (mittels &amp;) sowie die Sonderzeichen \$1-.\$1/\$1"'@:\$1 bestehen.

*query*  
Die Abfrageparameter Die maximale Länge beträgt 128 Zeichen.

Sie können URI-Komponenten der ursprünglichen URL in der Ziel-URL weiter nutzen. Verwenden Sie dazu die folgenden reservierten Schlüsselwörter:
+ `#{protocol}` – zur Beibehaltung des Protokolls. In den Protokoll- und Abfragekomponenten zu verwenden.
+ `#{host}` – Zur Beibehaltung der Domain. In den Hostnamen-, Pfad- und Abfragekomponenten zu verwenden.
+ `#{port}` – Zur Beibehaltung des Ports. In den Port-, Pfad- und Abfragekomponenten zu verwenden.
+ `#{path}` – Zur Beibehaltung des Pfads. In den Pfad- und Abfragekomponenten zu verwenden.
+ `#{query}` – Zur Beibehaltung der Abfrageparameter. In der Abfragekomponente zu verwenden.

Wenn eine `redirect`-Aktion ausgeführt wird, wird diese in den Zugriffsprotokollen aufgezeichnet. Weitere Informationen finden Sie unter [Zugriffsprotokolleinträge](load-balancer-access-logs.md#access-log-entry-format). Die Anzahl der erfolgreichen `redirect`-Aktionen wird in der Metrik `HTTP_Redirect_Count` erfasst. Weitere Informationen finden Sie unter [Application-Load-Balancer-Metriken](load-balancer-cloudwatch-metrics.md#load-balancer-metrics-alb).

### Beispiel für Weiterleitungsaktionen mithilfe der Konsole
<a name="redirect-action-console"></a>

**Weiterleitung über HTTPS und Port 40443**  
Mit der folgenden Regel wird beispielsweise eine permanente Weiterleitung auf eine URL mit dem HTTPS-Protokoll und dem festgelegten Port 40443 eingerichtet. Beibehalten werden der ursprüngliche Hostname, der Pfad und die Abfrageparameter. Dieser Bildschirm entspricht "https://\$1\$1host\$1:40443/\$1\$1path\$1?\$1\$1query\$1".

![\[Eine Regel, über die die Anforderung an eine URL mit dem HTTPS-Protokoll und dem angegebenen Port 40443 weitergeleitet wird. Beibehalten werden die ursprüngliche Domain, der Pfad und die Abfrageparameter der ursprünglichen URL.\]](http://docs.aws.amazon.com/de_de/elasticloadbalancing/latest/application/images/redirect_https_port.png)


**Mit einem geänderten Pfad weiterleiten**  
Mit der folgenden Regel wird eine permanente Weiterleitung auf eine URL mit dem ursprünglichen Protokoll, Port, Hostnamen und Abfrageparametern eingerichtet. Der Pfad wird mit dem Schlüsselwort `#{path}` modifiziert. Dieser Bildschirm entspricht "\$1\$1protocol\$1://\$1\$1host\$1:\$1\$1port\$1/new/\$1\$1path\$1?\$1\$1query\$1".

![\[Eine Regel, über die die Anforderung an eine URL mit dem ursprünglichen Protokoll, Port, Hostnamen und Abfrageparametern weitergeleitet wird. Der Pfad wird mit dem Schlüsselwort #{path} modifiziert.\]](http://docs.aws.amazon.com/de_de/elasticloadbalancing/latest/application/images/redirect_path.png)


### Beispiel für Umleitungsaktionen mit dem AWS CLI
<a name="redirect-action-cli"></a>

**Weiterleitung über HTTPS und Port 40443**  
Sie können eine Aktion angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Mit der folgenden Aktion wird eine HTTP-Anforderung an eine HTTPS-Anforderung an Port 443 weitergeleitet, die denselben Hostnamen, Pfad und die gleiche Abfragezeichenfolge wie die HTTP-Anforderung aufweist.

```
  --actions '[{
      "Type": "redirect",
      "RedirectConfig": {
          "Protocol": "HTTPS",
          "Port": "443",
          "Host": "#{host}",
          "Path": "/#{path}",
          "Query": "#{query}",
          "StatusCode": "HTTP_301"
      }
  }]'
```

# Bedingungstypen für Listener-Regeln
<a name="rule-condition-types"></a>

Bedingungen definieren die Kriterien, die eingehende Anfragen erfüllen müssen, damit eine Listener-Regel wirksam wird. Wenn eine Anforderung den Bedingungen für eine Regel entspricht, wird die Anfrage gemäß den Aktionen der Regel behandelt. Jede Regelbedingung weist einen Typ und Bedingungsinformationen auf. Application Load Balancers unterstützen die folgenden Bedingungstypen für Listener-Regeln.Bedingungstypen

`host-header`  
Die Route basiert auf dem Hostnamen jeder Anforderung. Weitere Informationen finden Sie unter [Hostbedingungen](#host-conditions).

`http-header`  
Die Route basiert auf den HTTP-Headern für jede Anforderung. Weitere Informationen finden Sie unter [HTTP-Header-Bedingungen](#http-header-conditions).

`http-request-method`  
Die Route basiert auf der HTTP-Anforderungsmethode jeder Anforderung. Weitere Informationen finden Sie unter [Bedingungen für HTTP-Anforderungsmethoden](#http-request-method-conditions).

`path-pattern`  
Route basierend auf Pfadmustern in der Anfrage URLs. Weitere Informationen finden Sie unter [Pfadbedingungen](#path-conditions).

`query-string`  
Route basierend auf key/value Paaren oder Werten in den Abfragezeichenfolgen. Weitere Informationen finden Sie unter [Abfragezeichenfolgebedingungen](#query-string-conditions).

`source-ip`  
Die Route basiert auf der Quell-IP-Adresse jeder Anforderung. Weitere Informationen finden Sie unter [Bedingungen für die Quell-IP-Adresse](#source-ip-conditions).

**Grundlagen des Zustands**
+ Jede Regel kann optional keine oder eine der folgenden Bedingungen enthalten:`host-header`, `http-request-method``path-pattern`, und`source-ip`. Jede Regel kann auch null oder mehr der folgenden Bedingungen enthalten: `http-header` und`query-string`.
+ Mit den `path-pattern` Bedingungen `host-header``http-header`, und können Sie entweder den Werteabgleich oder den Abgleich mit regulären Ausdrücken (Regex) verwenden.
+ Sie können bis zu drei Übereinstimmungsbewertungen pro Bedingung angeben. Beispiel: Für jede `http-header`-Bedingung können Sie bis zu drei Zeichenfolgen angeben, die mit dem Wert des HTTP-Headers in der Anforderung vergleichen werden. Die Bedingung wird erfüllt, wenn eine der Zeichenfolgen dem Wert des HTTP-Headers entspricht. Wenn alle drei Zeichenfolgen eine Übereinstimmung aufweisen sollen, erstellen Sie eine Bedingung pro Übereinstimmungsbewertung.
+ Sie können bis zu fünf Übereinstimmungsbewertungen pro Regel angeben. Beispiel: Sie können eine Regel mit fünf Bedingungen erstellen, wobei jede Bedingung eine Übereinstimmungsbewertung aufweist.
+ Sie können Platzhalterzeichen in die Übereinstimmungsbewertung für die Bedingungen `http-header`, `host-header`, `path-pattern` und `query-string` einschließen. Die Anzahl der Platzhalterzeichen pro Bedingung ist auf 5 beschränkt.
+ Regeln werden nur auf sichtbare ASCII-Zeichen angewendet; Steuerzeichen (0x00 bis 0x1f und 0x7f) sind ausgeschlossen.

**Demos**  
Demos finden Sie unter [Erweiterte Anfrageweiterleitung](https://exampleloadbalancer.com/advanced_request_routing_demo.html).

## Hostbedingungen
<a name="host-conditions"></a>

Mit Hostbedingungen können Sie Regeln definieren, die Anforderungen basierend auf dem Hostnamen im Host-Header weiterleiten (auch als *hostbasierte Weiterleitung* bezeichnet). Auf diese Weise können Sie mit einem einzigen Load Balancer mehrere Unterdomains und verschiedene Top-Level-Domains unterstützen.

Beim Hostnamen wird die Groß-/Kleinschreibung nicht berücksichtigt, er kann maximal 128 Zeichen lang sein und kann folgende Zeichen enthalten:
+ A-Z, a-z, 0-9
+ - .
+ \$1 (entspricht 0 oder mehr Zeichen)
+ ? (entspricht genau 1 Zeichen)

Sie müssen mindestens ein "."-Zeichen einschließen. Es können nur alphabethische Zeichen nach dem letzten "."-Zeichen angegeben werden.

**Beispiele für Hostnamen**
+ example.com
+ test.example.com
+ \$1.example.com

Die Regel \$1.example.com entspricht test.example.com, nicht jedoch example.com.

**Example Beispiel für eine Host-Header-Bedingung**  
Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html).  

```
[
  {
      "Field": "host-header",
      "HostHeaderConfig": {
          "Values": ["*.example.com"]
      }
  }
]
```

```
[
  {
      "Field": "host-header",
      "HostHeaderConfig": {
          "RegexValues": ["^(.*)\\.example\\.com$"]
      }
  }
]
```

## HTTP-Header-Bedingungen
<a name="http-header-conditions"></a>

Mit HTTP-Header-Bedingungen können Sie Regeln konfigurieren, mit denen Anforderungen auf Grundlage der HTTP-Header für die Anforderung weitergeleitet werden. Sie können die Namen der standardmäßigen oder benutzerdefinierten HTTP-Header-Felder angeben. Beim Headernamen und bei der Übereinstimmungsbewertung wird nicht zwischen die Groß- und Kleinschreibung unterschieden. Die folgenden Platzhalterzeichen werden in den Vergleichszeichenfolgen unterstützt: \$1 (findet eine Übereinstimmung mit 0 oder mehr Zeichen) und ? (findet Übereinstimmungen für genau 1 Zeichen). Platzhalterzeichen werden im Header-Namen nicht unterstützt.

Wenn das Application Load Balancer Balancer-Attribut aktiviert `routing.http.drop_invalid_header_fields` ist, werden Header-Namen gelöscht, die nicht den regulären Ausdrücken () `A-Z,a-z,0-9` entsprechen. Header-Namen, die nicht den regulären Ausdrücken entsprechen, können ebenfalls hinzugefügt werden.

**Example Beispiel für eine HTTP-Header-Bedingung**  
Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Die folgende Bedingung wird von Anforderungen mit einem User-Agent-Header erfüllt, der mindestens einer der angegeben Zeichenfolgen entspricht.  

```
[
  {
      "Field": "http-header",
      "HttpHeaderConfig": {
          "HttpHeaderName": "User-Agent",
          "Values": ["*Chrome*", "*Safari*"]
      }
  }
]
```

```
[
  {
      "Field": "http-header",
      "HttpHeaderConfig": {
          "HttpHeaderName": "User-Agent",
          "RegexValues": [".+"]
      }
  }
]
```

## Bedingungen für HTTP-Anforderungsmethoden
<a name="http-request-method-conditions"></a>

Mit Bedingungen für HTTP-Anforderungsmethoden können Sie Regeln konfigurieren, mit denen Anforderungen auf Grundlage der HTTP-Anforderungsmethode der Anforderung weitergeleitet werden. Sie können standardmäßige oder benutzerdefinierte HTTP-Methoden angeben. Bei der Übereinstimmungsbewertung wird die Groß- und Kleinschreibung nicht beachtet, Platzhalterzeichen werden nicht unterstützt. Der Methodenname muss also eine genaue Übereinstimmung sein.

Wir empfehlen, dass Sie GET- und HEAD-Anforderungen auf die gleiche Weise weiterleiten, da die Antwort auf eine HEAD-Anforderung möglicherweise zwischengespeichert wird.

**Example Beispiel für eine HTTP-Methodenbedingung**  
Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Die folgende Bedingung wird von Anforderungen erfüllt, bei der die angegebene Methode verwendet wird.  

```
[
  {
      "Field": "http-request-method",
      "HttpRequestMethodConfig": {
          "Values": ["CUSTOM-METHOD"]
      }
  }
]
```

## Pfadbedingungen
<a name="path-conditions"></a>

Mit Pfadbedingungen können Sie Regeln definieren, mit denen Anforderungen auf Grundlage der URL in der Anforderung weitergeleitet werden (auch bekannt als *pfadbasierte Weiterleitung*

Das Pfadmuster wird nur auf den Pfad der URL, nicht auf dessen Abfrageparameter, angewendet. Es wird nur auf sichtbare ASCII-Zeichen angewendet; Steuerzeichen (0x00 bis 0x1f und 0x7f) sind ausgeschlossen.

Die Regelauswertung wird erst durchgeführt, nachdem die URI-Normalisierung erfolgt ist.

Beim Pfadmuster wird die Groß-/Kleinschreibung berücksichtigt, es kann maximal 128 Zeichen lang sein und kann folgende Zeichen enthalten.
+ A-Z, a-z, 0-9
+ \$1 - . \$1 / \$1 " ' @ : \$1
+ & (Verwendung von &amp;)
+ \$1 (entspricht 0 oder mehr Zeichen)
+ ? (entspricht genau 1 Zeichen)

Wenn die Protokollversion gRPC ist, können Bedingungen für ein Paket, einen Dienst oder eine Methode spezifisch sein.

**Beispiel für HTTP-Pfadmuster**
+ `/img/*`
+ `/img/*/pics`

**Beispiel für gRPC-Pfadmuster**
+ /paket
+ /paket.dienst
+ /paket.dienst/methode

Das Pfadmuster wird verwendet, um Anforderungen weiterzuleiten. Die Anforderungen werden bei diesem Vorgang aber nicht geändert. Wenn eine Regel beispielsweise das Pfadmuster `/img/*` aufweist, leitet die Regel eine Anforderung von `/img/picture.jpg` an die angegebene Zielgruppe als Anforderung von `/img/picture.jpg` weiter.

**Example Beispiel für eine Pfadmusterbedingung**  
Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Die folgende Bedingung wird von Anforderungen mit einer URL erfüllt, die die angegebene Zeichenfolge enthält.  

```
[
  {
      "Field": "path-pattern",
      "PathPatternConfig": {
          "Values": ["/img/*"]
      }
  }
]
```

```
[
  {
      "Field": "path-pattern",
      "PathPatternConfig": {
          "RegexValues": ["^\\/api\\/(.*)$"]
      }
  }
]
```

## Abfragezeichenfolgebedingungen
<a name="query-string-conditions"></a>

Sie können Bedingungen für Abfragezeichenfolgen verwenden, um Regeln zu konfigurieren, die Anfragen auf der Grundlage von key/value Paaren oder Werten in der Abfragezeichenfolge weiterleiten. Bei der Übereinstimmungsbewertung wird die Groß- und Kleinschreibung nicht beachtet, Die folgenden Platzhalterzeichen werden unterstützt: \$1 (findet Übereinstimmungen mit 0 oder mehr Zeichen) und ? (findet Übereinstimmungen für genau 1 Zeichen).

**Example Beispiel für eine Bedingung einer Abfragezeichenfolge**  
Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Die folgende Bedingung wird durch Anfragen mit einer Abfragezeichenfolge erfüllt, die entweder ein key/value Paar von „version=v1" oder einen beliebigen Schlüssel enthält, der auf „Beispiel“ gesetzt ist.  

```
[
  {
      "Field": "query-string",
      "QueryStringConfig": {
          "Values": [
            {
                "Key": "version", 
                "Value": "v1"
            },
            {
                "Value": "*example*"
            }
          ]
      }
  }
]
```

## Bedingungen für die Quell-IP-Adresse
<a name="source-ip-conditions"></a>

Mit Bedingungen für die Quell-IP-Adresse können Sie Regeln konfigurieren, mit denen Anforderungen auf Grundlage der Quell-IP-Adresse der Anforderung weitergeleitet werden. Die IP-Adresse muss im CIDR-Format angegeben werden. Sie können sowohl als auch IPv4 Adressen verwenden. IPv6 Platzhalterzeichen werden nicht unterstützt. Sie können den `255.255.255.255/32`-CIDR für die Quell-IP-Regelbedingung nicht angeben. 

Befindet sich ein Client hinter einem Proxy, ist dies die IP-Adresse des Proxys, nicht die des Clients.

Diese Bedingung wird von den Adressen in der X-Forwarded-For Kopfzeile nicht erfüllt. Verwenden Sie eine `http-header` Bedingung, um in der X-Forwarded-For Kopfzeile nach Adressen zu suchen.

**Example Beispiel für eine Quell-IP-Bedingung**  
Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Die Folgende Bedingung wird von Anforderungen mit einer Quell-IP-Adresse in einem der angegebenen CIDR-Blöcken erfüllt.  

```
[
  {
      "Field": "source-ip",
      "SourceIpConfig": {
          "Values": ["192.0.2.0/24", "198.51.100.10/32"]
      }
  }
]
```

# Transformationen für Listener-Regeln
<a name="rule-transforms"></a>

Eine Regeltransformation schreibt eingehende Anfragen neu, bevor sie an Ziele weitergeleitet werden. Durch das Umschreiben einer Anfrage wird die Routing-Entscheidung, die bei der Auswertung der Regelbedingungen getroffen wurde, nicht geändert. Dies ist nützlich, wenn Clients eine andere URL oder einen anderen Host-Header senden als von den Zielen erwartet.

Durch die Verwendung von Regeltransformationen wird die Verantwortung für die Änderung von Pfaden, Abfragezeichenfolgen und Host-Headern auf den Load Balancer übertragen. Dadurch müssen Sie Ihrem Anwendungscode keine benutzerdefinierte Änderungslogik hinzufügen oder sich bei der Durchführung der Änderungen auf einen Proxy eines Drittanbieters verlassen.

Application Load Balancers unterstützen die folgenden Transformationen für Listener-Regeln.Transformationen

`host-header-rewrite`  
Schreibt den Host-Header in der Anfrage neu. Die Transformation verwendet einen regulären Ausdruck, um einem Muster im Host-Header zu entsprechen, und ersetzt es dann durch eine Ersatzzeichenfolge.

`url-rewrite`  
Schreibt die Anforderungs-URL neu. Die Transformation verwendet einen regulären Ausdruck, um einem Muster in der Anforderungs-URL zu entsprechen, und ersetzt es dann durch eine Ersatzzeichenfolge.

**Grundlagen der Transformation**
+ Sie können pro Regel eine Host-Header-Rewrite-Transformation und eine URL-Rewrite-Transformation hinzufügen.
+ Sie können einer Standardregel keine Transformation hinzufügen.
+ Wenn es keine Musterübereinstimmung gibt, wird die ursprüngliche Anfrage an das Ziel gesendet.
+ Wenn es eine Musterübereinstimmung gibt, die Transformation jedoch fehlschlägt, geben wir einen HTTP 500-Fehler zurück.

## Transformationen beim Umschreiben des Host-Headers
<a name="host-header-rewrite-transforms"></a>

Sie können den im Host-Header angegebenen Domainnamen ändern.

**Example Beispiel für eine Host-Header-Transformation**  
Sie können eine Transformation angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Im Folgenden finden Sie ein Beispiel für eine Host-Header-Transformation. Es wandelt den Host-Header in einen internen Endpunkt um.  

```
[
  {
      "Type": "host-header-rewrite",
      "HostHeaderRewriteConfig": {
          "Rewrites": [
              {
                  "Regex": "^mywebsite-(.+).com$",
                  "Replace": "internal.dev.$1.myweb.com"
              }
          ]
      }
  }
]
```
Diese Transformation schreibt beispielsweise den Host-Header `https://mywebsite-example.com/project-a` um als. `https://internal.dev.example.myweb.com/project-a`

## Das Umschreiben von URLs transformiert
<a name="url-rewrite-transforms"></a>

Sie können den Pfad oder die Abfragezeichenfolge der URL ändern. Indem Sie die URL auf Load Balancer-Ebene neu schreiben, URLs kann Ihr Frontend für Benutzer und Suchmaschinen konsistent bleiben, auch wenn sich Ihre Back-End-Dienste ändern. Sie können auch komplexe URL-Abfragezeichenfolgen vereinfachen, um Kunden die Eingabe zu erleichtern.

Beachten Sie, dass Sie das Protokoll oder den Port der URL nicht ändern können, sondern nur den Pfad und die Abfragezeichenfolge.

**Example Beispiel für eine Transformation zum Umschreiben einer URL**  
Sie können eine Transformation angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) und [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Im Folgenden finden Sie ein Beispiel für eine URL-Rewrite-Transformation. Sie wandelt die Verzeichnisstruktur in eine Abfragezeichenfolge um.  

```
[
  {
      "Type": "url-rewrite",
      "UrlRewriteConfig": {
          "Rewrites": [
              {
                  "Regex": "^/dp/([A-Za-z0-9]+)/?$",
                  "Replace": "/product.php?id=$1"
              }
          ]
      }
  }
]
```
Diese Transformation schreibt beispielsweise die Anforderungs-URL `https://www.example.com/dp/B09G3HRMW` um als. `https://www.example.com/product.php?id=B09G3HRMW`

**Wie sich URL-Umschreibungen von URL-Weiterleitungen unterscheiden**


| Merkmal | URL-Weiterleitungen | URL-Umschreibungen | 
| --- | --- | --- | 
| URL-Anzeige | Änderungen in der Adressleiste des Browsers | Keine Änderung in der Adressleiste des Browsers | 
| Statuscodes | Verwendet 301 (permanent) oder 302 (temporär) | Keine Änderung des Statuscodes | 
| Verarbeitung | Browserseitig | Serverseitig | 
| Allgemeine Verwendungen | Domainwechsel, Konsolidierung der Website, Behebung defekter Links | Bereinigen Sie URLs die Suchmaschinenoptimierung, verbergen Sie komplexe Strukturen und stellen Sie eine veraltete URL-Zuordnung bereit | 

# Fügen Sie eine Listener-Regel für Ihren Application Load Balancer hinzu
<a name="add-rule"></a>

Sie definieren eine Standardregel, wenn Sie einen Listener erstellen. Sie können jederzeit zusätzliche Regeln definieren. Jede Regel muss eine Aktion und eine Bedingung angeben und kann optional Transformationen angeben. Weitere Informationen finden Sie hier:
+ [Aktionstypen](rule-action-types.md)
+ [Zustandstypen](rule-condition-types.md)
+ [Transformiert](rule-transforms.md)

------
#### [ Console ]

**So fügen Sie eine Regel hinzu**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie im Navigationsbereich **Load Balancers** aus.

1. Wählen Sie den Load Balancer aus.

1. Wählen Sie auf der Registerkarte **Listener und Regeln** den Text in der Spalte **Protokoll: Port** aus, um die Detailseite für den Listener zu öffnen.

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

1. (Optional) Um einen Namen für Ihre Regel anzugeben, erweitern Sie **Name und Tags und** geben Sie den Namen ein. Um weitere Tags hinzuzufügen, wählen Sie **Zusätzliche Tags hinzufügen** aus und geben Sie den Tag-Schlüssel und den Tag-Wert ein.

1. Wählen Sie für jede Bedingung **Bedingung hinzufügen**, wählen Sie den Bedingungstyp und geben Sie die erforderlichen Bedingungswerte an:
   + **Host-Header** — Wählen Sie den Übereinstimmungsmustertyp aus und geben Sie den Host-Header ein.

     **Werteabgleich** — Maximal 128 Zeichen. Die Groß- und Kleinschreibung muss nicht berücksichtigt werden. Zulässige Zeichen sind a-z, A-Z, 0-9; die folgenden Sonderzeichen: -\$1.; und Platzhalter (\$1 und ?). Sie müssen mindestens ein "."-Zeichen einschließen. Es können nur alphabethische Zeichen nach dem letzten "."-Zeichen angegeben werden.

     **Regex-Abgleich** — Maximal 128 Zeichen.
   + **Pfad** — Wählen Sie den Typ des Übereinstimmungsmusters aus und geben Sie den Pfad ein.

     **Werteabgleich** — Maximal 128 Zeichen. Groß-/Kleinschreibung ist zu beachten. Zulässige Zeichen sind a-z, A-Z, 0-9; die folgenden Sonderzeichen: \$1-.\$1/\$1"'@:\$1; &; und Platzhalter (\$1 und ?).

     **Regex-Abgleich** — Maximal 128 Zeichen.
   + **Abfragezeichenfolge** — Geben Sie Schlüssel/Wert-Paare oder Werte ohne Schlüssel ein.

     Maximal 128 Zeichen. Die Groß- und Kleinschreibung muss nicht berücksichtigt werden. Zulässige Zeichen sind a-z, A-Z, 0-9; die folgenden Sonderzeichen: \$1-.\$1/\$1"'@:\$1&()\$1,;=; und Platzhalter (\$1 und ?).
   + **HTTP-Anforderungsmethode** — Geben Sie die HTTP-Anforderungsmethode ein.

     Maximal 40 Zeichen. Groß-/Kleinschreibung ist zu beachten. Zulässige Zeichen sind A-Z und die folgenden Sonderzeichen: -\$1. Platzhalter werden nicht unterstützt.
   + **HTTP-Header** — Wählen Sie den Match-Mustertyp aus und geben Sie den Namen des Headers und die Vergleichszeichenfolgen ein.
     + **HTTP-Header-Name** – Die Regel bewertet Anforderungen, die diesen Header enthalten, um zu bestätigen, dass die Werte übereinstimmen.

       **Werteabgleich** — Maximal 40 Zeichen. Die Groß- und Kleinschreibung muss nicht berücksichtigt werden. Zulässige Zeichen sind a-z, A-Z, 0-9 und die folgenden Sonderzeichen: \$1?-\$1\$1\$1%&'\$1.^\$1`\$1\$1. Platzhalter werden nicht unterstützt.

       **Regex-Abgleich** — Maximal 128 Zeichen.
     + **HTTP-Header-Wert** – Geben Sie Zeichenfolgen ein, die mit dem HTTP-Header-Wert verglichen werden sollen.

       **Entsprechender Wert** Maximal 128 Zeichen. Die Groß- und Kleinschreibung muss nicht berücksichtigt werden. Zulässige Zeichen sind a-z, A-Z, 0-9; Leerzeichen; die folgenden Sonderzeichen:\$1“ \$1\$1%&' () \$1,. /:; <=>@ [] ^\$1` \$1\$1\$1 \$1-; und Platzhalter (\$1 und?).

       **Regex-Abgleich** — Maximal 128 Zeichen.
   + **Quell-IP** – Definieren Sie die Quell-IP-Adresse im CIDR-Format. Beides IPv4 und IPv6 CIDRs sind erlaubt. Platzhalter werden nicht unterstützt.

1. (Optional) Um eine Transformation hinzuzufügen, wählen Sie **Transformation hinzufügen**, wählen Sie den Transformationstyp und geben Sie einen passenden regulären Ausdruck und eine Ersatzzeichenfolge ein.

1. (Optional, nur HTTPS-Listener) Wählen Sie für die **Aktion „Pre-Routing**“ eine der folgenden Aktionen aus:
   + **Benutzer authentifizieren** — Wählen Sie einen Identitätsanbieter und geben Sie die erforderlichen Informationen ein. Weitere Informationen finden Sie unter [Authentifizieren von Benutzern mithilfe eines Application Load Balancers](listener-authenticate-users.md).
   + **Token validieren** — Geben Sie den JWKS-Endpunkt, Probleme und alle zusätzlichen Ansprüche ein. Weitere Informationen finden Sie unter [JWTs Mit einem Application Load Balancer verifizieren](listener-verify-jwt.md).

1. Wählen Sie für die **Routing-Aktion** eine der folgenden Aktionen aus:
   + An **Zielgruppen weiterleiten** — Wählen Sie eine Zielgruppe aus. Um eine weitere Zielgruppe hinzuzufügen, wählen Sie **Zielgruppe hinzufügen**, wählen Sie eine Zielgruppe aus, überprüfen Sie die relativen Gewichtungen und aktualisieren Sie die Gewichtungen nach Bedarf. Sie müssen Stickiness auf Gruppenebene aktivieren, wenn Sie Stickiness für eine der Zielgruppen aktiviert haben.
   + **Zur URL weiterleiten** **— Geben Sie die URL ein, indem Sie jeden Teil einzeln auf der Registerkarte **URI-Teile** eingeben, oder indem Sie die vollständige Adresse auf der Registerkarte Vollständige URL eingeben.** Wählen Sie für **den Statuscode** je nach Bedarf entweder temporär (HTTP 302) oder permanent (HTTP 301) aus.
   + **Feste Antwort zurückgeben** — Geben Sie den **Antwortcode** ein, der bei verworfenen Kundenanfragen zurückgegeben werden soll. Optional können Sie den **Inhaltstyp** und einen **Antworttext** angeben.

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

1. Geben Sie für **Priorität** einen Wert zwischen 1 und 50.000 ein. Regeln werden in der Reihenfolge ihrer Priorität vom niedrigsten bis zum höchsten Wert bewertet.

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

1. Wählen Sie auf der Seite **Überprüfen und erstellen** die Option **Erstellen** aus.

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

**So fügen Sie eine Regel hinzu**  
Verwenden Sie den Befehl [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html).

Im folgenden Beispiel wird eine Regel mit einer `forward` Aktion und einer `host-header` Bedingung erstellt.

```
aws elbv2 create-rule \
    --listener-arn listener-arn \
    --priority 10 \
    --conditions "Field=host-header,Values=example.com,www.example.com" \
    --actions "Type=forward,TargetGroupArn=target-group-arn"
```

Um eine Forward-Aktion zu erstellen, die den Traffic auf zwei Zielgruppen verteilt, verwenden Sie stattdessen die folgende `--actions` Option.

```
    --actions '[{
        "Type":"forward",
        "ForwardConfig":{
          "TargetGroups":[
            {"TargetGroupArn":"target-group-1-arn","Weight":50},
            {"TargetGroupArn":"target-group-2-arn","Weight":50}
          ]
        }
    }]'
```

Im folgenden Beispiel wird eine Regel mit einer `fixed-response` Aktion und einer `source-ip` Bedingung erstellt.

```
aws elbv2 create-rule \
    --listener-arn listener-arn \
    --priority 20 \
    --conditions '[{"Field":"source-ip","SourceIpConfig":{"Values":["192.168.1.0/24","10.0.0.0/16"]}}]' \
    --actions "Type=fixed-response,FixedResponseConfig={StatusCode=403,ContentType=text/plain,MessageBody='Access denied'}"
```

Im folgenden Beispiel wird eine Regel mit einer `redirect` Aktion und einer `http-header` Bedingung erstellt.

```
aws elbv2 create-rule \
    --listener-arn listener-arn \
    --priority 30 \
    --conditions '[{"Field":"http-header","HttpHeaderConfig":{"HttpHeaderName":"User-Agent","Values":["*Mobile*","*Android*","*iPhone*"]}}]' \
    --actions "Type=redirect,RedirectConfig={Host=m.example.com,StatusCode=HTTP_302}"
```

------
#### [ CloudFormation ]

**So fügen Sie eine Regel hinzu**  
Definieren Sie eine Ressource des Typs [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html).

Im folgenden Beispiel wird eine Regel mit einer `forward` Aktion und einer `host-header` Bedingung erstellt. Die Regel sendet Traffic an die angegebene Zielgruppe, wenn die Bedingung erfüllt ist.

```
Resources:
    myForwardListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 10
       Conditions:
         - Field: host-header
           Values:
             - example.com
             - www.example.com
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
```

Um eine Weiterleitungsaktion zu erstellen, die den Verkehr zwischen zwei Zielgruppen verteilt, wenn die Bedingung erfüllt ist, definieren Sie alternativ `Actions` wie folgt.

```
       Actions:
         - Type: forward
           ForwardConfig:
             TargetGroups:
               - TargetGroupArn: !Ref TargetGroup1
                 Weight: 50
               - TargetGroupArn: !Ref TargetGroup2
                 Weight: 50
```

Im folgenden Beispiel wird eine Regel mit einer `fixed-response` Aktion und einer `source-ip` Bedingung erstellt.

```
Resources:
    myFixedResponseListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 20
       Conditions:
         - Field: source-ip
           SourceIpConfig:
             Values:
                - 192.168.1.0/24
                - 10.0.0.0/16
       Actions:
         - Type: fixed-response
           FixedResponseConfig:
             StatusCode: 403
             ContentType: text/plain
             MessageBody: "Access denied"
```

Im folgenden Beispiel wird eine Regel mit einer `redirect` Aktion und einer `http-header` Bedingung erstellt.

```
Resources:
    myRedirectListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 30
       Conditions:
         - Field: http-header
           HttpHeaderConfig:
             HttpHeaderName: User-Agent
             Values: 
               - "*Mobile*"
               - "*Android*"
               - "*iPhone*"
       Actions:
         - Type: redirect
           RedirectConfig:
             Host: m.example.com
             StatusCode: HTTP_302
```

------

# Bearbeiten Sie eine Listener-Regel für Ihren Application Load Balancer
<a name="edit-rule"></a>

Sie können die Aktion und die Bedingungen für eine Listener-Regel jederzeit bearbeiten. Regelaktualisierungen werden nicht sofort wirksam, so dass Anforderungen nach dem Aktualisieren einer Regel für kurze Zeit mit der vorherigen Regelkonfiguration weitergeleitet werden können. Alle in der Übertragung befindlichen Anforderungen sind abgeschlossen.

**Topics**
+ [Ändern Sie die Standardaktion](#modify-default-action)
+ [Aktualisieren Sie die Regelprioritäten](#update-rule-priority)
+ [Aktualisieren Sie Aktionen, Bedingungen und Transformationen](#update-rule-actions-conditions-transforms)
+ [Verwalte die Regel-Tags](#manage-rule-tags)

## Ändern Sie die Standardaktion
<a name="modify-default-action"></a>

Die Standardaktion ist einer Regel mit dem Namen **Standard** zugewiesen. Sie können den aktuellen Regeltyp beibehalten und die erforderlichen Informationen ändern, oder Sie können den Regeltyp ändern und die neuen erforderlichen Informationen angeben.

------
#### [ Console ]

**Um die Standardaktion zu ändern**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie im Navigationsbereich **Load Balancers** aus.

1. Wählen Sie den Load Balancer aus.

1. Wählen Sie auf der Registerkarte **Listener und Regeln** den Text in der Spalte **Protokoll: Port** aus, um die Detailseite für den Listener zu öffnen.

1. Wählen Sie auf der Registerkarte **Regeln** im Abschnitt **Listener-Regeln** die Standardregel aus. Wählen Sie **Aktionen**, **Regel bearbeiten** aus.

1. Aktualisieren Sie unter **Standardaktion** die Aktionen nach Bedarf.

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

**Um die Standardaktion zu ändern**  
Verwenden Sie den Befehl [modify-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-listener.html). Im folgenden Beispiel wird die Zielgruppe für die `forward` Aktion aktualisiert.

```
aws elbv2 modify-listener \
    --listener-arn listener-arn \
    --default-actions Type=forward,TargetGroupArn=new-target-group-arn
```

Im folgenden Beispiel wird die Standardaktion aktualisiert, um den Traffic gleichmäßig auf zwei Zielgruppen zu verteilen.

```
aws elbv2 modify-listener \
    --listener-arn listener-arn \
    --default-actions '[{
      "Type":"forward",
      "ForwardConfig":{
        "TargetGroups":[
          {"TargetGroupArn":"target-group-1-arn","Weight":50},
          {"TargetGroupArn":"target-group-2-arn","Weight":50}
        ]
      }
    }]'
```

------
#### [ CloudFormation ]

**Um die Standardaktion zu ändern**  
Aktualisieren Sie die [AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)Ressource.

```
Resources:
    myHTTPlistener:
      Type: 'AWS::ElasticLoadBalancingV2::Listener'
      Properties:
        LoadBalancerArn: !Ref myLoadBalancer
        Protocol: HTTP
        Port: 80
        DefaultActions:
          - Type: "forward"
            TargetGroupArn: !Ref myNewTargetGroup
```

------

## Aktualisieren Sie die Regelprioritäten
<a name="update-rule-priority"></a>

Regeln werden in der Reihenfolge ihrer Prioritäten bewertet, ausgehend vom niedrigsten Wert hin zum höchsten Wert. Die Standardregel wird zuletzt ausgewertet. Sie können die Priorität einer nicht standardmäßigen Regel jederzeit ändern. Sie können die Priorität der Standardregel nicht ändern.

------
#### [ Console ]

**Um die Regelprioritäten zu aktualisieren**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Klicken Sie im Navigationsbereich auf **Load Balancers**.

1. Wählen Sie den Load Balancer aus.

1. Wählen Sie auf der Registerkarte **Listener und Regeln** den Text in der Spalte **Protokoll: Port** aus, um die Detailseite für den Listener zu öffnen.

1. Wählen Sie auf der Registerkarte **Regeln** die Listener-Regel aus und klicken Sie dann auf **Aktionen**, Regeln **neu priorisieren**.

1. Im Abschnitt **Listener-Regeln** werden in der Spalte **Priorität** die aktuellen Regelprioritäten angezeigt. Um eine Regelpriorität zu aktualisieren, geben Sie einen Wert zwischen 1 und 50.000 ein.

1. Wählen Sie **Änderungen speichern ** aus.

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

**Um die Regelprioritäten zu aktualisieren**  
Verwenden Sie den Befehl [set-rule-priorities](https://docs.aws.amazon.com/cli/latest/reference/elbv2/set-rule-priorities.html).

```
aws elbv2 set-rule-priorities \
    --rule-priorities "RuleArn=listener-rule-arn,Priority=5"
```

------
#### [ CloudFormation ]

**Um Regelprioritäten zu aktualisieren**  
Aktualisieren Sie die [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html)Ressource.

```
Resources:
    myListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 5
       Conditions:
         - Field: host-header
           Values:
             - example.com
             - www.example.com
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
```

------

## Aktualisieren Sie Aktionen, Bedingungen und Transformationen
<a name="update-rule-actions-conditions-transforms"></a>

Sie können die Aktionen, Bedingungen und Transformationen für eine Regel aktualisieren.

------
#### [ Console ]

**Um Regelaktionen, Bedingungen und Transformationen zu aktualisieren**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Klicken Sie im Navigationsbereich auf **Load Balancers**.

1. Wählen Sie den Load Balancer aus.

1. Wählen Sie auf der Registerkarte **Listener und Regeln** den Text in der Spalte **Protokoll: Port** aus, um die Detailseite für den Listener zu öffnen.

1. Wählen Sie auf der Registerkarte **Regeln** die Listener-Regel aus und klicken Sie dann auf **Aktionen**, Regel **bearbeiten**.

1. Aktualisieren Sie die Aktionen, Bedingungen und Transformationen nach Bedarf. Die detaillierten Schritte finden Sie unter [Hinzufügen einer Regel](add-rule.md).

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

1. (Optional) Aktualisieren Sie die Priorität.

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

1. Wählen Sie **Änderungen speichern ** aus.

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

**Um Regelaktionen, Bedingungen und Transformationen zu aktualisieren**  
Verwenden Sie den Befehl [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Geben Sie mindestens eine der folgenden Optionen an: `--actions``--conditions`, und`--transforms`.

Beispiele für diese Optionen finden Sie unter[Hinzufügen einer Regel](add-rule.md).

------
#### [ CloudFormation ]

**So aktualisieren Sie Regelaktionen, Bedingungen und Transformationen**  
Aktualisieren Sie die [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html)Ressource.

Beispiele für Regeln finden Sie unter [Hinzufügen einer Regel](add-rule.md).

------

## Verwalte die Regel-Tags
<a name="manage-rule-tags"></a>

Mit Tags können Sie Ihre Listener und Regeln auf unterschiedliche Weise kategorisieren. Sie können Ressourcen beispielsweise nach Zweck, Inhaber oder Umgebung taggen. Tag-Schlüssel müssen für jede Regel eindeutig sein. Wenn Sie eine Markierung mit einem Schlüssel hinzufügen, der der Regel bereits zugeordnet ist, ändert sich der Wert dieser Markierung.

Wenn Sie ein Tag nicht mehr benötigen, können Sie es entfernen.

------
#### [ Console ]

**Um die Tags für eine Regel zu verwalten**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Klicken Sie im Navigationsbereich auf **Load Balancers**.

1. Wählen Sie den Namen des Load Balancers, um dessen Detailseite zu öffnen.

1. Wählen Sie auf der Registerkarte **Listener und Regeln** den Text in der Spalte **Protokoll: Port** aus, um die Detailseite für den Listener zu öffnen.

1. Wählen Sie auf der Registerkarte **Regeln** den Text in der Spalte **Namenstag** aus, um die Detailseite für die Regel zu öffnen.

1. Wählen Sie auf der Seite mit den Details der Regel die Option **Tags verwalten** aus.

1. Auf der Seite **Tags verwalten** haben Sie folgende Möglichkeiten:

   1. Um ein Tag hinzuzufügen, wählen Sie **Neues Tag hinzufügen** aus und geben Sie Werte für **Schlüssel** und **Wert** ein.

   1. Um ein Tag zu löschen, wählen Sie **Entfernen** neben dem Tag.

   1. Um ein Tag zu aktualisieren, geben Sie neue Werte für **Schlüssel** oder **Wert** ein.

1. Wählen Sie **Änderungen speichern ** aus.

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

**Um einer Regel Tags hinzuzufügen**  
Verwenden Sie den Befehl [add-tags](https://docs.aws.amazon.com/cli/latest/reference/elbv2/add-tags.html).

```
aws elbv2 add-tags \
    --resource-arns listener-rule-arn \
    --tags "Key=project,Value=lima" "Key=department,Value=digital-media"
```

**Um Tags aus einer Regel zu entfernen**  
Verwenden Sie den Befehl [remove-tags](https://docs.aws.amazon.com/cli/latest/reference/elbv2/remove-tags.html).

```
aws elbv2 remove-tags \
    --resource-arns listener-rule-arn \
    --tag-keys project department
```

------
#### [ CloudFormation ]

**Um einer Regel Tags hinzuzufügen**  
Aktualisieren Sie die [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html)Ressource.

```
Resources:
    myListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 10
       Conditions:
         - Field: host-header
           Values:
             - example.com
             - www.example.com
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
       Tags: 
        - Key: 'project'
          Value: 'lima'
        - Key: 'department'
          Value: 'digital-media'
```

------

# Löschen Sie eine Listener-Regel für Ihren Application Load Balancer
<a name="delete-rule"></a>

Sie können die nicht standardmäßigen Regeln für einen Listener jederzeit ändern. Sie können die Standardregel für einen Listener nicht löschen. Wen Sie einen Listener löschen, werden all seine Regeln gelöscht.

------
#### [ Console ]

**So löschen Sie eine Regel**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie im Navigationsbereich **Load Balancers** aus.

1. Wählen Sie den Load Balancer aus.

1. Wählen Sie auf der Registerkarte **Listener und Regeln** den Text in der Spalte **Protokoll: Port** aus, um die Detailseite für den Listener zu öffnen.

1. Wählen Sie die Regel aus.

1. Klicken Sie bei ** Actions** (Aktionen) auf **Delete rule** (Regel löschen).

1. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie **confirm** ein und wählen Sie dann **Löschen** aus.

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

**So löschen Sie eine Regel**  
Verwenden Sie den Befehl [delete-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/delete-rule.html).

```
aws elbv2 delete-rule \
    --rule-arn listener-rule-arn
```

------