Utilisation d'Elastic Beanstalk avec Amazon EventBridge - 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.

Utilisation d'Elastic Beanstalk avec Amazon EventBridge

Avec Amazon EventBridge, vous pouvez configurer des règles basées sur des événements qui surveillent vos ressources Elastic Beanstalk et lancer des actions ciblées utilisant d'autres services AWS. Par exemple, vous pouvez définir une règle pour l'envoi de notifications par e-mail en signalant une rubrique Amazon SNS chaque fois que l'état de santé d'un environnement de production passe à Warning (Avertissement). Vous pouvez également définir une fonction Lambda pour transmettre une notification à Slack chaque fois que l'état de santé de votre environnement passe à Degraded (Dégradé) ou à Severe (Grave).

Vous pouvez créer des règles dans Amazon EventBridge pour agir sur l'un des événements Elastic Beanstalk suivants :

  • Changements d'état des opérations d'environnement (y compris les opérations de création, de mise à jour et de résiliation). L'événement indique si le changement d'état a démarré, réussi ou échoué.

  • Changements d'état pour d'autres ressources.Outre les environnements, les autres ressources surveillées incluent les équilibreurs de charge, les groupes Auto Scaling et les instances.

  • Transition d'état pour les environnements. L'événement indique l'endroit où l'état de l'environnement est passé d'un état de santé à un autre.

  • Changement d'état pour les mises à jour gérées. L'événement indique si le changement d'état a démarré, réussi ou échoué.

Pour capturer des événements Elastic Beanstalk spécifiques qui vous intéressent, définissez des modèles spécifiques à ces événements, qu'EventBridge peut utiliser pour détecter les événements. Les modèles d'événement ont la même structure que les événements auxquels ils correspondent. Le modèle place entre guillemets les champs que vous voulez faire correspondre et fournit les valeurs que vous recherchez. Les événements sont générés sur la base du meilleur effort. Ils sont remis à EventBridge par Elastic Beanstalk en temps quasi réel dans des conditions opérationnelles normales. Toutefois, certaines situations peuvent retarder ou empêcher la livraison d'un événement.

Pour obtenir la liste des champs contenus dans les événements Elastic Beanstalk et leurs valeurs de chaîne possibles, veuillez consulter Mappage des champs d'événement Elastic Beanstalk. Pour de plus amples informations sur le fonctionnement des règles EventBridge avec les modèles d'événements, veuillez consulter Événements et modèles d'événements dans EventBridge.

Surveiller une ressource Elastic Beanstalk avec EventBridge

Avec EventBridge, vous pouvez créer des règles définissant les mesures à prendre lorsqu'Elastic Beanstalk émet des événements pour ses ressources. Par exemple, vous pouvez créer une règle qui vous envoie un e-mail chaque fois que l'état d'un environnement change.

La console EventBridge dispose d'une option de Pre-defined pattern (Motif prédéfini) pour créer des modèles d'événements Elastic Beanstalk. Si vous sélectionnez cette option dans la console EventBridge lorsque vous créez une règle, vous pouvez créer rapidement un modèle d'événement Elastic Beanstalk. Il suffit de sélectionner les champs et les valeurs de l'événement. Au fur et à mesure que vous effectuez des sélections, la console crée et affiche le modèle d'événement. Vous pouvez également modifier manuellement le modèle d'événement que vous créez et pouvez l'enregistrer en tant que modèle personnalisé. La console vous fournit également l'option d'afficher un Sample Event (Exemple d'événement) détaillé que vous pouvez copier et coller dans le modèle d'événement que vous créez.

Si vous préférez saisir ou copier et coller un modèle d'événement dans la console EventBridge, vous pouvez choisir d'utiliser l'option Custom pattern (Motif personnalisé) dans la console. Ce faisant, vous n'avez pas besoin de suivre les étapes de sélection des champs et des valeurs décrites précédemment. Cette rubrique propose des exemples de modèles de correspondance d'événements et d'événements Elastic Beanstalk que vous pouvez utiliser.

Pour créer une règle pour un événement de ressource
  1. Connectez-vous à AWS à l'aide d'un compte autorisé à utiliser EventBridge et Elastic Beanstalk.

  2. Ouvrez la console Amazon EventBridge à l'adresse https://console.aws.amazon.com/events/.

  3. Dans le volet de navigation, choisissez Rules.

  4. Choisissez Create rule (Créer une règle).

  5. Entrez un nom et éventuellement une description pour la règle.

  6. Pour Event bus (Bus d'événement), choisissez default (défaut). Lorsqu'un service AWS de votre compte émet un événement, il accède toujours au bus d'événement par défaut de votre compte.

  7. Pour Rule type (Type de règle), choisissez Rule with an event pattern (Règle avec un modèle d'événement).

  8. Choisissez Suivant.

  9. Pour Event source (Origine de l'événement), choisissez events or EventBridge partner events (Événements AWS ou événements partenaires EventBridge).

  10. (Facultatif) Pour Sample Event (Exemple d'événement), sélectionnez AWS event (Événements AWS). Saisissez Elastic Beanstalk dans le champ de recherche. Cela fournit une liste d'exemples d'événements Elastic Beanstalk que vous pouvez choisir d'afficher. Cette étape affiche simplement un exemple d'événement que vous pouvez référencer. Cela n'affecte pas le résultat de la création de la règle. La section Exemple d'événement Elastic Beanstalk plus loin dans cette rubrique vous permet d'avoir des exemples du même type d'événement.

  11. Dans la section Event pattern (Modèle d'événement), choisissez Event pattern form (Modèle d'événement).

    Note

    Si vous avez déjà du texte pour un modèle d'événement et que vous n'avez pas besoin que la console EventBridge le crée pour vous, sélectionnez Customer pattern (JSON editor) (Modèle client – Éditeur JSON). Vous pouvez ensuite saisir ou copier et coller manuellement du texte dans la zone Event Pattern (Modèle d'événement). Choisissez Next (Suivant), puis passez à l'étape relative à la saisie d'une cible.

  12. Pour Event source (Origine de l'événement), choisissez AWSservices (Services ).

  13. Pour AWS service (service AWS), sélectionnez Elastic Beanstalk.

  14. Pour Event type (Type d'événement), sélectionnez Statut Change (Changement de statut).

  15. Cette étape explique comment utiliser les champs d'événement detail type (type de détail), statut (état) et severity (gravité) pour Elastic Beanstalk. Au fur et à mesure que vous sélectionnez ces champs et les valeurs de votre choix, la console crée et affiche le modèle d'événement.

    • Si vous sélectionnez une seule valeur pour Specific detail type(s) (Type(s) de détail spécifique(s)), vous pouvez sélectionner une ou plusieurs valeurs pour le champ suivant de la hiérarchie.

    • Si vous sélectionnez plus d'une valeur pour Specific detail type(s) (Type(s) de détail spécifique(s)), ne sélectionnez pas de valeurs pour les champs suivants de la hiérarchie. Cela permet d'avoir une logique de correspondance ambiguë entre les champs de votre modèle d'événement.

    Le champ d'événement environment (environnement) n'est pas affecté par cette hiérarchie, il s'affiche comme décrit à l'étape suivante.

  16. Pour l'environment, sélectionnez Any environment (N'importe quel environnement) ou Specific environment(s) (Environnement(s) spécifique(s)).

    • Si vous sélectionnez Specific environment(s) (Environnement(s) spécifique(s)), vous pouvez sélectionner un ou plusieurs environnements dans la liste déroulante. EventBridge ajoute tous les environnements que vous sélectionnez dans la liste EnvironmentName[ ] de la section detail (détails) du modèle d'événement. Ensuite, votre règle filtre tous les événements pour inclure uniquement les environnements spécifiques que vous sélectionnez.

    • Si vous sélectionnez Any environment (N'importe quel environnements), aucun environnement n'est ajouté à votre modèle d'événement. Pour cette raison, votre règle ne filtre aucun des événements Elastic Beanstalk en se basant sur l'environnement.

  17. Choisissez Suivant.

  18. Pour Target types (Types de cibles), choisissez AWS service (service AWS).

  19. Pour Select a target (Sélectionner une cible), choisissez l'action cible à effectuer lorsqu'un événement de changement d'état de ressource est reçu de la part d'Elastic Beanstalk.

    Par exemple, vous pouvez utiliser une rubrique Amazon Simple Notification Service (SNS) pour envoyer un e-mail ou un SMS lorsqu'un événement se produit. Pour ce faire, vous devez créer une rubrique Amazon SNS à l'aide de la console Amazon SNS. Pour en savoir plus, veuillez consulter Utilisation d'Amazon SNS pour les notifications utilisateur.

    Important

    Certaines actions cibles peuvent nécessiter l'utilisation d'autres services entraînant des frais supplémentaires, tels que le service Amazon SNS ou Lambda. Pour de plus amples informations sur la tarification AWS, veuillez consulter https://aws.amazon.com/pricing/. Certains services font partie du niveau d'offre gratuite d'AWS. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d'informations, consultez https://aws.amazon.com/free/.

  20. (Facultatif) Sélectionnez Add another target (Ajouter une autre cible) pour spécifier une action cible supplémentaire pour la règle d'événement.

  21. Choisissez Suivant.

  22. (Facultatif) Entrez une ou plusieurs balises pour la règle. Pour plus d'informations, consultez Balises Amazon EventBridge dans le Guide de l'utilisateur Amazon EventBridge.

  23. Choisissez Suivant.

  24. Consultez les détails de la règle et choisissez Create rule (Créer une règle).

Exemple de modèles d'événements Elastic Beanstalk

Les modèles d'événement ont la même structure que les événements auxquels ils correspondent. Le modèle place entre guillemets les champs que vous voulez faire correspondre et fournit les valeurs que vous recherchez.

  • Health status change (Changement de l'état de santé) pour tous les environnements

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Health status change" ] }
  • Health status change (Changement de l'état de santé) pour les environnements suivants : myEnvironment1 et myEnvironment2. Ce modèle d'événement filtre pour ces deux environnements spécifiques, tandis que l'exemple précédent de Health status change (Changement de l'état de santé) qui ne filtre pas envoie des événements pour tous les environnements.

    {"source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Health status change" ], "detail": { "EnvironmentName": [ "myEnvironment1", "myEnvironment2" ] } }
  • Elastic Beanstalk resource status change (Changement de l'état de santé des ressources Elastic Beanstalk) pour tous les environnements

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Elastic Beanstalk resource status change" ] }
  • Elastic Beanstalk resource status change (Changement de l'état de ressource Elastic Beanstalk) avec Status Environment update failed (Échec de la mise à jour d'environnement) et Severity ERROR (ERREUR) pour les environnements suivants : myEnvironment1 et myEnvironment2

    {"source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Elastic Beanstalk resource status change" ], "detail": { "Status": [ "Environment update failed" ], "Severity": [ "ERROR" ], "EnvironmentName": [ "myEnvironment1", "myEnvironment2" ] } }
  • Other resource status change (Autre changement d'état des ressources) pour les équilibreurs de charge, les groupes Auto Scaling et les instances

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Other resource status change" ] }
  • Managed update status change (Changement d'état des mises à jour gérées) pour tous les environnements

    { "source": [ "aws.elasticbeanstalk" ], "detail-type": [ "Managed update status change" ] }
  • Pour capturer tous les événements à partir d'Elastic Beanstalk, excluez la section detail-type :

    { "source": [ "aws.elasticbeanstalk" ] }

Exemple d'événement Elastic Beanstalk

Voici un exemple d'événement Elastic Beanstalk pour un changement d'état de ressource :

{ "version":"0", "id":"1234a678-1b23-c123-12fd3f456e78", "detail-type":"Elastic Beanstalk resource status change", "source":"aws.elasticbeanstalk", "account":"111122223333", "time":"2020-11-03T00:31:54Z", "region":"us-east-1", "resources":[ "arn:was:elasticbeanstalk:us-east-1:111122223333:environment/myApplication/myEnvironment" ], "detail":{ "Status":"Environment creation started", "EventDate":1604363513951, "ApplicationName":"myApplication", "Message":"createEnvironment is starting.", "EnvironmentName":"myEnvironment", "Severity":"INFO" } }

Voici un exemple d'événement Elastic Beanstalk pour un changement d'état de santé :

{ "version":"0", "id":"1234a678-1b23-c123-12fd3f456e78", "detail-type":"Health status change", "source":"aws.elasticbeanstalk", "account":"111122223333", "time":"2020-11-03T00:34:48Z", "region":"us-east-1", "resources":[ "arn:was:elasticbeanstalk:us-east-1:111122223333:environment/myApplication/myEnvironment" ], "detail":{ "Status":"Environment health changed", "EventDate":1604363687870, "ApplicationName":"myApplication", "Message":"Environment health has transitioned from Pending to Ok. Initialization completed 1 second ago and took 2 minutes.", "EnvironmentName":"myEnvironment", "Severity":"INFO" } }

Mappage des champs d'événement Elastic Beanstalk

Le tableau suivant mappe les champs d'événement Elastic Beanstalk et leurs valeurs de chaîne possibles au champ EventBridge detail-type. Pour de plus amples informations sur le fonctionnement d'EventBridge avec les modèles d'événements pour un service, veuillez consulter Événements et modèles d'événements dans EventBridge.

Champ EventBridge detail-type Champ Elastic Beanstalk Status Champ Elastic Beanstalk Severity Champ Elastic Beanstalk Message

Elastic Beanstalk resource status change

Environment creation started

INFO

createEnvironment is starting.

Environment creation successful

INFO

createEnvironment completed successfully.

Environment creation successful

INFO

Launched environment: <Environment Name>. However, there were issues during launch. See event log for details.

Environment creation failed

ERROR

Failed to launch environment.

Environment update started

INFO

Environment update is starting.

Environment update successful

INFO

Environment update completed successfully.

Environment update failed

ERROR

Failed to deploy configuration.

Environment termination started

INFO

terminateEnvironment is starting.

Environment termination successful

INFO

terminateEnvironment completed successfully.

Environment termination failed

INFO

The environment termination step failed because at least one of the environment termination workflows failed.

Other resource status change

Auto Scaling group created

INFO

createEnvironment is starting.

Auto Scaling group deleted

INFO

createEnvironment is starting.

Instance added

INFO

Added instance [i-123456789a12b1234] to your environment.

Instance removed

INFO

Removed instance [i-123456789a12b1234] from your environment.

Load balancer created

INFO

Created load balancer named: <LB Name>

Load balancer deleted

INFO

Deleted load balancer named: <LB Name>

Health status change

Environment health changed

INFO/WARN

Environment health has transitioned to <healthStatus>.

Environment health changed

INFO/WARN

Environment health has transitioned from <healthStatus> to <healthStatus>.

Managed update status change

Managed updated started

INFO

Managed platform update is in-progress.

Managed update failed

INFO

Managed update failed, retrying in %s minutes.