

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.

# Création d’une règle qui se déclenche sur un événement Amazon Aurora
<a name="rds-cloud-watch-events"></a>

Amazon vous permet EventBridge d'automatiser les AWS services et de répondre aux événements du système tels que les problèmes de disponibilité des applications ou les modifications des ressources. 

**Topics**
+ [Tutoriel : Consigner les modifications de l'état d'une instance de base de données à l'aide EventBridge](#log-rds-instance-state)

## Tutoriel : Consigner les modifications de l'état d'une instance de base de données à l'aide EventBridge
<a name="log-rds-instance-state"></a>

Dans ce didacticiel, vous allez créer une AWS Lambda fonction qui enregistre les changements d'état d'une instance Vous créez ensuite une règle qui exécute la fonction chaque fois qu’il y a un changement d’état d’une instance de base de données RDS existante. Le didacticiel suppose que vous avez d’une petite instance de test en cours d’exécution, que vous pouvez arrêter momentanément.

**Important**  
N’appliquez pas ce tutoriel à une instance de base de données de production en cours d’exécution.

**Topics**
+ [Étape 1 : Création d'une AWS Lambda fonction](#rds-create-lambda-function)
+ [Étape 2 : création d’une règle](#rds-create-rule)
+ [Étape 3 : test de la règle](#rds-test-rule)

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

Créez une fonction Lambda pour enregistrer les événements de changement d’état. Vous spécifiez cette fonction lors de la création de votre règle.

**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. Si vous utilisez Lambda pour la première fois, une page de bienvenue s’affiche. Sélectionnez **Pour commencer**. Sinon, choisissez **Créer la fonction**.

1. Choisissez **Créer à partir de scratch**.

1. Sur la page **Create function** (Créer une fonction), procédez de la façon suivante :

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

   1. Dans **Runtime**, sélectionnez **Node.js 16x**. 

   1. Pour **Architecture**, choisissez **x86\$164**.

   1. Pour **Execution role** (Rôle d’exécution), effectuez l’une des opérations suivantes :
      + Choisissez **Create a new role with basic Lambda permissions (Créer un rôle avec les autorisations Lambda standard)**.
      + Pour **Existing role** (Rôle existant), sélectionnez **Use an existing role** (Utiliser un rôle existant). Choisissez le rôle que vous voulez utiliser. 

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

1. Sur la page **RDSInstanceStateChange**, procédez de la façon suivante :

   1. Dans **Code source** (Source de code), sélectionnez **index.js**. 

   1. Dans le panneau **index.js**, supprimez le code existant.

   1. Saisissez le code suivant :

      ```
      console.log('Loading function');
      
      exports.handler = async (event, context) => {
          console.log('Received event:', JSON.stringify(event));
      };
      ```

   1. Choisissez **Deploy** (Déployer).

### Étape 2 : création d’une règle
<a name="rds-create-rule"></a>

Créez une règle pour exécuter votre fonction Lambda chaque fois que vous lancez une instance Amazon RDS.

**Pour créer la EventBridge 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, entrez **RDSInstanceStateChangeRule**.

1. Sélectionnez **Rule with an event pattern** (Règle avec un modèle d’événement), puis sélectionnez **Next** (Suivant).

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

1. Faites défiler la page vers le bas jusqu’à la section **Event pattern** (Modèle d’événement).

1. Pour **Event source (Source d’événement)**, choisissez **Services AWS**.

1. Pour **Service AWS **, choisissez **Relational Database Service (RDS)**.

1. Pour **Event type** (Type d’événement), sélectionnez **RDS DB Instance Event** (événement d’instance de base de données RDS).

1. Laissez le modèle d’événement par défaut. Ensuite, sélectionnez **Suivant**.

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

1. Pour **Select a target** (Sélectionner une cible), choisissez **Lambda Function** (Fonction Lambda).

1. Dans **Function** (Fonction), choisissez la fonction Lambda que vous avez créée. Ensuite, sélectionnez **Suivant**.

1. Dans la rubrique **Configure tags** (Configurer les balises), sélectionnez **Next** (Suivant).

1. Passez en revue les étapes de votre règle. Puis, choisissez **Create rule** (Créer une règle).

### Étape 3 : test de la règle
<a name="rds-test-rule"></a>

Pour tester votre règle, arrêtez une instance de base de données RDS. Après avoir attendu quelques minutes que l’instance s’arrête, vous pouvez vérifier que votre fonction Lambda a été appelée.

**Pour tester votre règle en arrêtant une instance de base de données**

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

1. Arrêter une instance de base de données RDS.

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, cliquez sur **Rules** (Règles), puis sur le nom de la règle que vous avez créée.

1. Dans **Détails des règles**, choisissez **Surveillance**.

   Vous êtes redirigé vers la CloudWatch console Amazon. Si vous n'êtes pas redirigé, cliquez sur **Afficher les statistiques dans CloudWatch**.

1. Dans **All metrics** (Toutes les métriques), cliquez sur le nom de la règle que vous avez créée.

   Le graphique doit indiquer que la règle a été appelée.

1. Dans le panneau de navigation, sélectionnez **Groupes de journaux**.

1. Choisissez le nom du groupe de journaux pour votre fonction Lambda (**/aws/lambda/ *function-name***).

1. Choisissez le nom du flux de journaux pour afficher les données fournies par la fonction concernant l’instance que vous avez lancée. Vous devez voir un événement reçu semblable à ce qui suit :

   ```
   {
       "version": "0",
       "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k",
       "detail-type": "RDS DB Instance Event",
       "source": "aws.rds",
       "account": "111111111111",
       "time": "2021-03-19T19:34:09Z",
       "region": "us-east-1",
       "resources": [
           "arn:aws:rds:us-east-1:111111111111:db:testdb"
       ],
       "detail": {
           "EventCategories": [
               "notification"
           ],
           "SourceType": "DB_INSTANCE",
           "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb",
           "Date": "2021-03-19T19:34:09.293Z",
           "Message": "DB instance stopped",
           "SourceIdentifier": "testdb",
           "EventID": "RDS-EVENT-0087"
       }
   }
   ```

   Pour voir plus d’exemples d’événements RDS au format JSON, consultez [Présentation des événements pour Aurora](working-with-events.md#rds-cloudwatch-events.sample).

1. (Facultatif) Lorsque vous avez terminé, vous pouvez ouvrir la console Amazon RDS et lancer l’instance que vous avez arrêtée.