

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
<a name="AWSHowTo.eventbridge"></a>

À l'aide d'Amazon EventBridge, vous pouvez configurer des règles basées sur les événements qui surveillent vos ressources Elastic Beanstalk et initient 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 n'importe lequel 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 EventBridge modèles spécifiques à ces événements qui peuvent être utilisés pour détecter les événements. Les modèles d’événements 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 dans la mesure du possible. Ils sont transmis depuis Elastic EventBridge Beanstalk en temps quasi réel dans des circonstances 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](#eb-eventbridge-mapping). Pour plus d'informations sur le fonctionnement EventBridge des règles avec les modèles d'événements, consultez la section [Événements et modèles d'événements dans EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-and-event-patterns.html). 

## Surveillez une ressource Elastic Beanstalk avec EventBridge
<a name="eb-eventbridge-tasks"></a>

Avec EventBridge, vous pouvez créer des règles qui définissent les actions à entreprendre 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 EventBridge console dispose d'une option de **modèle prédéfinie** pour créer des modèles d'événements Elastic Beanstalk. Si vous sélectionnez cette option dans la EventBridge console 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 taper ou copier-coller un modèle d'événement dans la EventBridge console, vous pouvez choisir d'utiliser l'option **Modèle 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](#eb-eventbridge-patterns) et d'[événements Elastic Beanstalk](#eb-eventbridge-examples) 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 Elastic EventBridge Beanstalk.

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

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

1. Choisissez **Créer une règle**.

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

1. Pour **Event bus** (Bus d’événement), choisissez **default** (défaut). Lorsqu'un AWS service de votre compte émet un événement, celui-ci est toujours redirigé vers le bus d'événements par défaut de votre compte.

1. Pour **Type de règle**, choisissez **Règle avec un modèle d’événement**.

1. Choisissez **Suivant**.

1. Dans **Source de l'événement**, choisissez **AWS des événements ou des événements EventBridge partenaires**.

1. (Facultatif) Dans **Exemple d'événement**, sélectionnez **AWS événements**. 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](#eb-eventbridge-examples) plus loin dans cette rubrique vous permet d'avoir des exemples du même type d'événement.

1. 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 de la EventBridge console pour le créer, sélectionnez **Modèle personnalisé (é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.

1. Pour **Source d'événement**, choisissez **Services AWS **. 

1. Pour le **AWS service**, sélectionnez **Elastic Beanstalk.**

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

1. 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 le ou les **types de détails spécifiques**, vous pouvez choisir une ou plusieurs valeurs pour le champ suivant de la hiérarchie.
   + Si vous choisissez *plusieurs* valeurs pour **des types de détails spécifiques**, ne choisissez pas de valeurs spécifiques 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.

1. Pour l'environment, sélectionnez **Any environment (N'importe quel environnement)** ou **Specific environment(s) (Environnement(s) spécifique(s))**.
   + Si vous sélectionnez **Environnement (s) spécifique (s)**, vous pouvez choisir 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 *détaillée* 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.

1. Choisissez **Suivant**.

1. Pour **Types de cibles**, choisissez **service AWS **.

1. 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](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html).
**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 plus d'informations sur la AWS tarification, consultez[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Certains services font partie du niveau d'utilisation AWS gratuit. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d’informations, consultez [https://aws.amazon.com/free/](https://aws.amazon.com/free/). 

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

1. Choisissez **Suivant**.

1. (Facultatif) Saisissez une ou plusieurs balises pour la règle. Pour plus d'informations, consultez les [ EventBridge balises Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html) dans le *guide de EventBridge l'utilisateur Amazon*.

1. Choisissez **Suivant**.

1. 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
<a name="eb-eventbridge-patterns"></a>

Les modèles d’événements 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
<a name="eb-eventbridge-examples"></a>

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
<a name="eb-eventbridge-mapping"></a>

Le tableau suivant associe les champs d'événements Elastic Beanstalk et leurs valeurs de chaîne possibles au champ. EventBridge `detail-type` Pour plus d'informations sur le EventBridge fonctionnement des modèles d'événements pour un service, consultez la section [Événements et modèles d'événements dans EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-and-event-patterns.html). 



- ** Elastic Beanstalk resource status change **
  - ****Champ Elastic Beanstalk *Status***:** Environment creation started / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** createEnvironment is starting.
  - ****Champ Elastic Beanstalk *Status***:** Environment creation successful / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** createEnvironment completed successfully.
  - ****Champ Elastic Beanstalk *Status***:** Environment creation successful / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Launched environment: <Environment Name>. However, there were issues during launch. See event log for details.
  - ****Champ Elastic Beanstalk *Status***:** Environment creation failed / ****Champ Elastic Beanstalk *Severity***:** ERROR / ****Champ Elastic Beanstalk *Message***:** Failed to launch environment.
  - ****Champ Elastic Beanstalk *Status***:** Environment update started / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Environment update is starting.
  - ****Champ Elastic Beanstalk *Status***:** Environment update successful / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Environment update completed successfully.
  - ****Champ Elastic Beanstalk *Status***:** Environment update failed / ****Champ Elastic Beanstalk *Severity***:** ERROR / ****Champ Elastic Beanstalk *Message***:** Failed to deploy configuration.
  - ****Champ Elastic Beanstalk *Status***:** Environment termination started / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** terminateEnvironment is starting.
  - ****Champ Elastic Beanstalk *Status***:** Environment termination successful / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** terminateEnvironment completed successfully.
  - ****Champ Elastic Beanstalk *Status***:** Environment termination failed / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** The environment termination step failed because at least one of the environment termination workflows failed.

- ** Other resource status change **
  - ****Champ Elastic Beanstalk *Status***:** Auto Scaling group created / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** createEnvironment is starting.
  - ****Champ Elastic Beanstalk *Status***:** Auto Scaling group deleted / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** createEnvironment is starting.
  - ****Champ Elastic Beanstalk *Status***:** Instance added / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Added instance [i-123456789a12b1234] to your environment.
  - ****Champ Elastic Beanstalk *Status***:** Instance removed / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Removed instance [i-123456789a12b1234] from your environment.
  - ****Champ Elastic Beanstalk *Status***:** Load balancer created / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Created load balancer named: <LB Name>
  - ****Champ Elastic Beanstalk *Status***:** Load balancer deleted / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Deleted load balancer named: <LB Name>

- ** Health status change **
  - ****Champ Elastic Beanstalk *Status***:** Environment health changed / ****Champ Elastic Beanstalk *Severity***:** INFO/WARN / ****Champ Elastic Beanstalk *Message***:** Environment health has transitioned to <healthStatus>.
  - ****Champ Elastic Beanstalk *Status***:** Environment health changed / ****Champ Elastic Beanstalk *Severity***:** INFO/WARN / ****Champ Elastic Beanstalk *Message***:** Environment health has transitioned from <healthStatus> to <healthStatus>.

- ** Managed update status change **
  - ****Champ Elastic Beanstalk *Status***:** Managed updated started / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Managed platform update is in-progress.
  - ****Champ Elastic Beanstalk *Status***:** Managed update failed / ****Champ Elastic Beanstalk *Severity***:** INFO / ****Champ Elastic Beanstalk *Message***:** Managed update failed, retrying in %s minutes.

