

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Ajoutez une règle d'écoute pour votre Application Load Balancer
<a name="add-rule"></a>

Vous définissez une règle par défaut lorsque vous créez un écouteur. Vous pouvez définir des règles supplémentaires à tout moment. Chaque règle doit spécifier une action et une condition, et peut éventuellement spécifier des transformations. Pour plus d’informations, consultez les ressources suivantes :
+ [Types d'action](rule-action-types.md)
+ [Types de conditions](rule-condition-types.md)
+ [Transforme](rule-transforms.md)

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

**Pour ajouter une règle**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Load Balancers (Équilibreurs de charge)**.

1. Sélectionnez l'équilibreur de charge.

1. Dans l'onglet **Écouteurs et règles**, sélectionnez le texte dans la colonne **Protocol:Port** pour ouvrir la page détaillée de l'écouteur.

1. Dans l'onglet **Règles**, sélectionnez **Ajouter une règle**.

1. (Facultatif) Pour donner un nom à votre règle, développez **Nom et tags** et entrez le nom. Pour ajouter des balises supplémentaires, choisissez **Ajouter des balises supplémentaires** et entrez la clé et la valeur de la balise.

1. Pour chaque condition, choisissez **Ajouter une condition**, choisissez le type de condition et fournissez les valeurs de condition requises :
   + **En-tête de l'hôte** : sélectionnez le type de modèle de correspondance et entrez l'en-tête de l'hôte.

     **Correspondance des valeurs** : 128 caractères maximum. Ne respecte pas la casse. Les caractères autorisés sont a-z, 0-9 ; les caractères spéciaux suivants : -\_. ; et les caractères génériques (\* et ?). Vous devez inclure au moins un caractère « . ». Vous pouvez inclure uniquement des caractères alphabétiques après le dernier caractère « . ».

     **Correspondance Regex** : 128 caractères maximum.
   + **Chemin** — Sélectionnez le type de modèle de correspondance et entrez le chemin.

     **Correspondance des valeurs** : 128 caractères maximum. Sensible à la casse. Les caractères autorisés sont a-z, 0-9 ; les caractères spéciaux suivants : \_-.$/\~"'@:\+; & ; et les caractères génériques (\* et ?).

     **Correspondance Regex** : 128 caractères maximum.
   + **Chaîne de requête** — Entrez des paires clé:valeur ou des valeurs sans clé.

     128 caractères maximum. Ne respecte pas la casse. Les caractères autorisés sont a-z, 0-9 ; les caractères spéciaux suivants : \_-.$/\~"'@:\+&()\!,;= ; et des caractères génériques (\* et ?).
   + **Méthode de requête HTTP** — Entrez la méthode de requête HTTP.

     40 caractères maximum. Sensible à la casse. Les caractères autorisés sont de A à Z et les caractères spéciaux suivants : -\_. Les caractères génériques ne sont pas pris en charge.
   + **En-tête HTTP** : sélectionnez le type de modèle de correspondance et entrez le nom de l'en-tête et les chaînes de comparaison.
     + **Nom de l'en-tête HTTP** – La règle évaluera les demandes contenant cet en-tête pour confirmer les valeurs correspondantes.

       **Correspondance des valeurs** : 40 caractères maximum. Ne respecte pas la casse. Les caractères autorisés sont a-z, 0-9 et les caractères spéciaux suivants : \*?-\!\#$%&'\+.^\_`\|\~. Les caractères génériques ne sont pas pris en charge.

       **Correspondance Regex** : 128 caractères maximum.
     + **Valeur d'en-tête HTTP** – Entrez des chaînes à comparer avec la valeur d'en-tête HTTP.

       **Valeur correspondante** : 128 caractères maximum. Ne respecte pas la casse. Les caractères autorisés sont a-z, A-Z, 0-9 ; les espaces ; les caractères spéciaux suivants : \! » \#$%&' () \+,. /: ; <=>@ [] ^\_` {\|} \~- ; et des caractères génériques (\* et ?).

       **Correspondance Regex** : 128 caractères maximum.
   + **IP source** – Définissez l'adresse IP source au format CIDR. Les deux IPv4 IPv6 CIDRs sont autorisés. Les caractères génériques ne sont pas pris en charge.

1. (Facultatif) Pour ajouter une transformation, choisissez **Ajouter une transformation**, choisissez le type de transformation, puis entrez une expression régulière correspondante ainsi qu'une chaîne de remplacement.

1. (Facultatif, écouteurs HTTPS uniquement) Pour l'**action de pré-routage**, sélectionnez l'une des actions suivantes :
   + **Authentifier l'utilisateur** : choisissez un fournisseur d'identité et fournissez les informations requises. Pour de plus amples informations, veuillez consulter [Authentification des utilisateurs à l'aide d'un Application Load Balancer](listener-authenticate-users.md).
   + **Valider le jeton** — Entrez le point de terminaison JWKS, les problèmes et toute réclamation supplémentaire. Pour de plus amples informations, veuillez consulter [Vérifier JWTs à l'aide d'un Application Load Balancer](listener-verify-jwt.md).

1. Pour **l'action de routage**, sélectionnez l'une des actions suivantes :
   + **Transférer aux groupes cibles** — Choisissez un groupe cible. Pour ajouter un autre groupe cible, choisissez **Ajouter un groupe cible**, choisissez un groupe cible, passez en revue les pondérations relatives et mettez à jour les pondérations selon les besoins. Vous devez activer l'adhérence au niveau du groupe si vous l'avez activée sur l'un des groupes cibles.
   + **Redirection vers l'URL** : entrez l'URL en saisissant chaque partie séparément dans l'onglet **Parties de l'URI**, ou en saisissant l'adresse complète dans l'onglet **URL complète**. Pour **le code d'état**, sélectionnez soit temporaire (HTTP 302) soit permanent (HTTP 301) en fonction de vos besoins.
   + **Renvoyer une réponse fixe** — Entrez le **code de réponse** à renvoyer en cas de demande client abandonnée. Vous pouvez éventuellement spécifier le **type de contenu** et le **corps de la réponse**.

1. Choisissez **Suivant**.

1. Pour **Priorité**, entrez une valeur comprise entre 1 et 50 000. Les règles sont évaluées par ordre de priorité, de la valeur la plus faible à la valeur la plus élevée.

1. Choisissez **Suivant**.

1. Sur la page **Review and create** (Vérifier et créer), choisissez **Create** (Créer).

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

**Pour ajouter une règle**  
Utilisez la commande [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html).

L'exemple suivant crée une règle avec une `forward` action et une `host-header` condition.

```
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}}"
```

Pour créer une action directe qui répartit le trafic entre deux groupes cibles, utilisez plutôt l'`--actions`option suivante.

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

L'exemple suivant crée une règle avec une `fixed-response` action et une `source-ip` condition.

```
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}}'}"
```

L'exemple suivant crée une règle avec une `redirect` action et une `http-header` condition.

```
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 ]

**Pour ajouter une règle**  
Définissez un type de ressource [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html).

L'exemple suivant crée une règle avec une `forward` action et une `host-header` condition. La règle envoie le trafic au groupe cible spécifié lorsque la condition est remplie.

```
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
```

Sinon, pour créer une action directe qui répartit le trafic entre deux groupes cibles lorsque la condition est remplie, définissez `Actions` comme suit.

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

L'exemple suivant crée une règle avec une `fixed-response` action et une `source-ip` condition.

```
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}}"
```

L'exemple suivant crée une règle avec une `redirect` action et une `http-header` condition.

```
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
```

------