

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.

# Configuration de règles d'intégrité améliorée pour un environnement
<a name="health-enhanced-rules"></a>

AWS Elastic Beanstalk les rapports de santé améliorés reposent sur un ensemble de règles visant à déterminer la santé de votre environnement. Certaines de ces règles peuvent ne pas être adaptées à votre application. Voici quelques exemples courants :
+ Vous utilisez des outils de test côté client. Dans ce cas, des erreurs fréquentes de client HTTP (4xx) sont attendues.
+ Vous utilisez [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/) avec Application Load Balancer de votre environnement pour bloquer le trafic entrant indésirable. Dans ce cas, Application Load Balancer renvoie l'erreur HTTP 403 pour chaque message entrant rejeté.

Par défaut, Elastic Beanstalk inclut toutes les erreurs HTTP 4xx de l'application lors de la détermination de l'état de l'environnement. L'état de santé de votre environnement passe de **OK** à **Warning** (Avertissement), **Degraded** (Dégradé) ou **Severe** (Grave), en fonction du taux d'erreur. Pour gérer correctement les cas mentionnés dans les exemples précédents, Elastic Beanstalk vous permet de configurer certaines règles d'état améliorées. Vous pouvez choisir d'ignorer les erreurs HTTP 4xx de l'application sur les instances de l'environnement ou d'ignorer les erreurs HTTP 4xx renvoyées par l'équilibreur de charge de l'environnement. Cette rubrique décrit comment effectuer ces modifications de configuration.

**Note**  
Actuellement, il s'agit de la seule personnalisation de règle d'intégrité améliorée disponible. Vous ne pouvez pas configurer l'intégrité améliorée pour ignorer d'autres erreurs HTTP en plus de 4xx.

## Configuration des règles d'état améliorées à l'aide de la console Elastic Beanstalk
<a name="health-enhanced-rules.console"></a>

Vous pouvez utiliser la console Elastic Beanstalk pour configurer les règles d'état améliorées dans votre environnement.

**Pour configurer la vérification des codes d'état HTTP 4xx à l'aide de la console Elastic Beanstalk**

1. Ouvrez la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk), puis **dans la liste des régions, sélectionnez votre**. Région AWS

1. Dans le panneau de navigation, choisissez **Environments** (Environnements), puis choisissez le nom de votre environnement dans la liste.

1. Dans le panneau de navigation, choisissez **Configuration**.

1. Dans la catégorie de configuration **Monitoring (Surveillance)**, choisissez **Edit (Modifier)**.

1. Sous **Personnalisation de la règle de surveillance de l'intégrité**, activez ou désactivez les options **Ignorer** souhaitées.  
![\[Section de personnalisation de la règle de surveillance de l'état sur la page de configuration de la surveillance de la console Elastic Beanstalk\]](http://docs.aws.amazon.com/fr_fr/elasticbeanstalk/latest/dg/images/enhanced-health-rule-customization.png)

1. Pour enregistrer les modifications, cliquez sur **Appliquer** en bas de la page.

## Configuration des règles d'intégrité améliorée à l'aide de l'interface de ligne de commande EB
<a name="health-enhanced-rules.ebcli"></a>

Vous pouvez utiliser l'interface de ligne de commande EB pour configurer les règles d'état améliorées en enregistrant la configuration de votre environnement en local, en ajoutant une entrée qui configure les règles d'état améliorées, puis en chargeant la configuration dans Elastic Beanstalk. Vous pouvez appliquer la configuration enregistrée à un environnement pendant ou après la création.

**Pour configurer la vérification du code d'état HTTP 4xx à l'aide de l'interface de ligne de commande EB et des configurations enregistrées**

1. Initialisez votre dossier de projet avec [**eb init**](eb-cli3-configuration.md).

1. Créez un environnement en exécutant la commande **eb create**.

1. Enregistrez un modèle de configuration localement en exécutant la commande **eb config save**. L'exemple suivant utilise l'option `--cfg` pour spécifier le nom de la configuration.

   ```
   $ eb config save --cfg 01-base-state
   Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
   ```

1. Ouvrez le fichier de configuration enregistrée dans un éditeur de texte.

1. Sous `OptionSettings` > `aws:elasticbeanstalk:healthreporting:system:`, ajoutez une clé `ConfigDocument` pour lister chaque règle d'intégrité améliorée à configurer. Le `ConfigDocument` suivant désactive la vérification des codes d'état HTTP 4xx de l'application, tout en conservant la vérification du code HTTP 4xx de l'équilibreur de charge activé.

   ```
   OptionSettings:
     ...
     aws:elasticbeanstalk:healthreporting:system:
       ConfigDocument:
         Rules:
           Environment:
             Application:
               ApplicationRequests4xx:
                 Enabled: false
             ELB:
               ELBRequests4xx:
                 Enabled: true
         Version: 1
       SystemType: enhanced
   ...
   ```
**Note**  
Vous pouvez combiner `Rules` et `CloudWatchMetrics` dans le même paramètre d'option `ConfigDocument`. Le paramètre `CloudWatchMetrics` est décrit dans [Publication de métriques CloudWatch personnalisées Amazon pour un environnement](health-enhanced-cloudwatch.md).  
Si vous avez précédemment activé `CloudWatchMetrics`, le fichier de configuration que vous récupérez à l'aide de la commande **eb config save** possède déjà une clé `ConfigDocument` avec une section `CloudWatchMetrics`. *Ne la supprimez pas* : ajoutez une section `Rules` dans la même valeur d'option `ConfigDocument`.

1. Enregistrez le fichier de configuration et fermez l'éditeur de texte. Dans cet exemple, le fichier de configuration mis à jour est enregistré avec un nom qui est différent (`02-cloudwatch-enabled.cfg.yml`) de celui du fichier de configuration téléchargé. Cela crée une configuration enregistrée distincte lorsque le fichier est téléchargé. Vous pouvez utiliser le même nom que le fichier téléchargé pour remplacer la configuration existante sans en créer une.

1. Utilisez la commande **eb config put** pour charger le fichier de configuration mis à jour dans Elastic Beanstalk.

   ```
   $ eb config put 02-cloudwatch-enabled
   ```

   Lorsque vous utilisez les commandes **eb config** `get` et `put` avec des configurations enregistrés, n'incluez pas l'extension de nom de fichier.

1. Appliquez la configuration enregistrée à votre environnement en cours d'exécution.

   ```
   $ eb config --cfg 02-cloudwatch-enabled
   ```

   L'option `--cfg` spécifie un fichier de configuration nommé qui est appliqué à l'environnement. Vous pouvez enregistrer le fichier de configuration en local ou dans Elastic Beanstalk. Si un fichier de configuration avec le nom spécifié existe dans les deux emplacements, l'interface de ligne de commande EB utilise le fichier local.

## Configuration des règles d'intégrité améliorée à l'aide d'un document de configuration
<a name="health-enhanced-rules.configdocument"></a>

Le document de configuration pour les règles d'intégrité améliorée est un document JSON qui répertorie les règles à configurer. 

L'exemple suivant montre un document de configuration qui désactive la vérification des codes d'état HTTP 4xx de l'application et active la vérification des codes d'état HTTP 4xx de l'équilibreur de charge.

```
{
  "Rules": {
    "Environment": {
      "Application": {
        "ApplicationRequests4xx": {
          "Enabled": false
        }
      },
      "ELB": {
        "ELBRequests4xx": {
          "Enabled": true
        }
      }
    }
  },
  "Version": 1
}
```

Pour le AWS CLI, vous transmettez le document en tant que valeur de `Value` clé dans un argument de paramètres d'option, qui est lui-même un objet JSON. Dans ce cas, vous devez utiliser des guillemets d'échappement dans le document intégré. La commande suivante vérifie si les paramètres de configuration sont valides.

```
$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[
    {
        "Namespace": "aws:elasticbeanstalk:healthreporting:system",
        "OptionName": "ConfigDocument",
        "Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }"
    }
]'
```

Pour un fichier de configuration `.ebextensions` au format YAML, vous pouvez fournir le document JSON en l'état.

```
  option_settings:
    - namespace: aws:elasticbeanstalk:healthreporting:system
      option_name: ConfigDocument
      value: {
  "Rules": {
    "Environment": {
      "Application": {
        "ApplicationRequests4xx": {
          "Enabled": false
        }
      },
      "ELB": {
        "ELBRequests4xx": {
          "Enabled": true
        }
      }
    }
  },
  "Version": 1
}
```