Configuration de règles d'intégrité améliorée pour un environnement - AWS Elastic Beanstalk

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

Le rapport sur l'état amélioré d'AWS Elastic Beanstalk s'appuie sur un ensemble de règles qui déterminent l'état 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 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

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 et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

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

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

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

  5. 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
  6. 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

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.

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

  3. 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
  4. Ouvrez le fichier de configuration enregistrée dans un éditeur de texte.

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

    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.

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

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

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

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 la AWS CLI, vous transmettez le document sous forme de valeur pour la clé Value 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 }