

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.

# Tutoriel : Création d'une EventBridge règle qui réagit aux appels AWS d'API via CloudTrail
<a name="eb-log-api-call"></a>

Vous pouvez utiliser EventBridge [les règles](eb-rules.md) Amazon pour réagir aux appels d'API effectués par un AWS service et enregistrés par AWS CloudTrail.

Dans ce didacticiel, vous allez créer une [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)piste, une fonction Lambda et une règle dans la EventBridge console. La règle invoque la fonction Lambda lorsqu’une instance Amazon EC2 est arrêtée.

**Topics**
+ [Étape 1 : Création d'un AWS CloudTrail parcours](#eb-log-api-create-ct-trail)
+ [Étape 2 : Création d'une AWS Lambda fonction](#eb-api-create-lambda-function)
+ [Étape 3 : Créer une règle](#eb-api-create-rule)
+ [Étape 4 : Tester la règle](#eb-api-test-rule)
+ [Étape 5 : Confirmer la bonne exécution](#success)
+ [Étape 6 : Nettoyer vos ressources](#cleanup)

## Étape 1 : Création d'un AWS CloudTrail parcours
<a name="eb-log-api-create-ct-trail"></a>

Si vous disposez déjà d’un journal de suivi configuré, passez directement à l’étape 2.

**Pour créer un journal de suivi**

1. Ouvrez la CloudTrail console à l'adresse [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1. Choisissez **Trails (Suivis)**, **Create trail (Créer un suivi)**.

1. Dans **Trail name**, tapez un nom pour le journal.

1. Pour **Emplacement de stockage**, choisissez **Créer un compartiment S3**.

1. Dans **Alias AWS KMS **, entrez un alias pour la clé KMS.

1. Choisissez **Suivant**.

1. Choisissez **Suivant**.

1. Choisissez **Create trail (Créer un journal de suivi)**.

## Étape 2 : Création d'une AWS Lambda fonction
<a name="eb-api-create-lambda-function"></a>

Créez une fonction Lambda pour enregistrer les événements d'appels d'API. 

**Pour créer une fonction Lambda**

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez **Créer une fonction**.

1. Choisissez **Créer à partir de zéro**.

1. Saisissez un nom et une description pour la fonction Lambda. Par exemple, nommez la fonction `LogEC2StopInstance`.

1. Gardez les autres options comme valeurs par défaut et choisissez **Créer une fonction**.

1. Dans l’onglet **Code** de la page de fonction, double-cliquez sur **index.js**.

1. Remplacez le code existant par le code suivant.

   ```
   'use strict';
   
   exports.handler = (event, context, callback) => {
       console.log('LogEC2StopInstance');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Choisissez **Déployer**.

## Étape 3 : Créer une règle
<a name="eb-api-create-rule"></a>

Créez une règle de sorte qu’elle exécute la fonction Lambda que vous avez créée à l’étape 2 chaque fois que vous arrêtez une instance Amazon EC2.

**Pour créer une règle**

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. Saisissez un nom et une description pour la règle. Par exemple, nommez la règle `TestRule`

1. Pour **Event bus** (Bus d'événement), sélectionnez le bus d'événement que vous souhaitez associer à cette règle. Si vous souhaitez que cette règle mette en correspondance les événements en provenance de votre compte, sélectionnez **Par 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.

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

1. Choisissez **Suivant**.

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

1. Pour **Event pattern** (Modèle d’événement), procédez comme suit :

   1. Pour **Source d’événement**, sélectionnez **EC2** dans la liste déroulante.

   1. Pour le **type d'événement**, sélectionnez **AWS API Call via CloudTrail** dans la liste déroulante.

   1. Choisissez **Opération(s) spécifique(s)** et entrez `StopInstances`.

1. Choisissez **Suivant**.

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

1. Pour **Sélectionner une cible**, choisissez **Fonction Lambda** dans la liste déroulante.

1. Pour **Fonction**, sélectionnez la fonction Lambda que vous avez créée dans la section **Étape 1 : Créer une fonction Lambda**. Dans cet exemple, sélectionnez `LogEC2StopInstance`.

1. Choisissez **Suivant**.

1. Choisissez **Suivant**.

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

## Étape 4 : Tester la règle
<a name="eb-api-test-rule"></a>

Vous pouvez tester votre règle en arrêtant une instance Amazon EC2 à l'aide de la console Amazon EC2. Attendez quelques minutes que l'instance s'arrête, puis vérifiez vos AWS Lambda métriques sur la CloudWatch console pour vérifier que votre fonction s'est exécutée.

**Pour tester votre règle en arrêtant une instance**

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

1. Lancez une instance. Pour plus d'informations, consultez la section [Lancer votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) dans le guide de l'*utilisateur Amazon EC2*.

1. Arrêtez l’instance. Pour plus d'informations, consultez la section [Arrêter et démarrer votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) dans le guide de l'*utilisateur Amazon EC2*.

1. Pour afficher la sortie de la fonction Lambda, procédez de la manière suivante :

   1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

   1. Dans le panneau de navigation, sélectionnez **Logs** (Journaux).

   1. Sélectionnez le nom du groupe de journaux pour votre fonction Lambda (`/aws/lambda/{{function-name}}`).

   1. Sélectionnez le nom du flux de journaux pour afficher les données fournies par la fonction concernant l'instance que vous avez arrêtée.

1. (Facultatif) Lorsque vous avez terminé, mettez fin à l'instance arrêtée. Pour plus d’informations, consultez [Résilier une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Étape 5 : Confirmer la bonne exécution
<a name="success"></a>

Si vous voyez l'événement Lambda dans les CloudWatch journaux, cela signifie que vous avez terminé ce didacticiel avec succès. Si l'événement ne figure pas dans vos CloudWatch journaux, commencez le dépannage en vérifiant que la règle a été créée avec succès et, si la règle semble correcte, vérifiez que le code de votre fonction Lambda est correct.

## Étape 6 : Nettoyer vos ressources
<a name="cleanup"></a>

Vous pouvez maintenant supprimer les ressources que vous avez créées pour ce didacticiel, sauf si vous souhaitez les conserver. En supprimant AWS les ressources que vous n'utilisez plus, vous évitez des frais inutiles sur votre AWS compte.

**Pour supprimer la ou les EventBridge règles**

1. Ouvrez la [page Règles](https://console.aws.amazon.com/events/home#/rules) de la EventBridge console.

1. Sélectionnez la ou les règles que vous avez créées.

1. Sélectionnez **Delete (Supprimer)**.

1. Sélectionnez **Delete (Supprimer)**.

**Pour supprimer la ou les fonctions Lambda**

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Sélectionnez la ou les fonctions que vous avez créées.

1. Sélectionnez **Actions**, **Supprimer**.

1. Sélectionnez **Supprimer**.

**Pour supprimer le ou les CloudTrail parcours**

1. Ouvrez la [page Trails](https://console.aws.amazon.com/cloudtrail/home#/trails) de la CloudTrail console.

1. Sélectionnez le ou les journaux de suivi que vous avez créés.

1. Sélectionnez **Delete (Supprimer)**.

1. Sélectionnez **Supprimer**.