

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 RDS
<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**
+ [Création de règles pour envoyer des événements Amazon RDS à Amazon EventBridge](#rds-cloudwatch-events.sending-to-cloudwatch-events)
+ [Tutoriel : Consigner les modifications de l'état d'une instance de base de données à l'aide EventBridge](#log-rds-instance-state)

## Création de règles pour envoyer des événements Amazon RDS à Amazon EventBridge
<a name="rds-cloudwatch-events.sending-to-cloudwatch-events"></a>

Vous pouvez écrire des règles simples pour préciser les événements Amazon RDS qui vous intéressent et les actions automatisées à effectuer quand un événement correspond à une règle. Vous pouvez définir diverses cibles, telles qu'une AWS Lambda fonction ou une rubrique Amazon SNS, qui reçoivent des événements au format JSON. Par exemple, vous pouvez configurer Amazon RDS Amazon pour envoyer des événements à Amazon EventBridge chaque fois qu'une instance de base de données est créée ou supprimée. Pour plus d'informations, consultez le guide de l'[utilisateur Amazon CloudWatch Events et le guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/) de [ EventBridge l'utilisateur Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/).

**Pour créer une règle qui se déclenche sur un événement RDS :**

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

1. Sous **Événements** dans le panneau de navigation, choisissez **Règles**.

1. Choisissez **Create rule**.

1. Dans **Event source**, effectuez l’une des opérations suivantes :

   1. Choisissez **Modèle d’événement**.

   1. Pour **Service Name** (Nom du service), choisissez **Relational Database Service (RDS)** (Service de base de données relationnelle).

   1. Pour **Event Type** (Type d’événement), choisissez le type de ressource Amazon RDS qui déclenche l’événement. Par exemple, si une instance de base de données déclenche l’événement, choisissez **RDS DB Instance Event** (Événement relatif à l’instance de base de données RDS).

1. Pour **les cibles**, choisissez **Ajouter une cible** et choisissez le AWS service qui doit agir lorsqu'un événement du type sélectionné est détecté. 

1. Dans les autres champs de cette section, entrez des informations spécifiques à ce type de cible, le cas échéant. 

1. Pour de nombreux types de cibles, EventBridge nécessite des autorisations pour envoyer des événements à la cible. Dans ces cas, EventBridge vous pouvez créer le rôle IAM nécessaire au déroulement de votre événement : 
   + Pour créer un rôle IAM automatiquement, choisissez **Create a new role for this specific resource**.
   + Pour utiliser un rôle IAM que vous avez créé auparavant, choisissez **Utiliser le rôle existant**.

1. Le cas échéant, répétez les étapes 5 à 7 afin d’ajouter une autre cible pour cette règle.

1. Sélectionnez **Configure details**. Dans **Rule definition**, saisissez un nom et une description pour la règle.

   Le nom de la règle doit être unique au sein de cette région.

1. Choisissez **Create rule**.

Pour plus d'informations, consultez [la section Création d'une EventBridge règle déclenchant un événement](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

## 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 Amazon RDS. 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 Amazon RDS](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.