Création d'une règle qui se déclenche sur un événement Amazon RDS - Amazon Relational Database Service

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

Avec Amazon CloudWatch Events et Amazon EventBridge vous pouvez automatiser des services AWS et répondre à des évènements système tels que des problèmes de disponibilité d'application ou des modifications de ressources.

Création de règles pour envoyer des évènements Amazon RDS à CloudWatch Events

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 une variété de cibles, telles qu'une fonction AWS Lambda ou une rubrique Amazon SNS, qui reçoivent des évènements au format JSON. Par exemple, vous pouvez configurer Amazon RDS pour envoyer des évènements à CloudWatch Events ou 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 de l'utilisateur Amazon EventBridge.

Pour créer une règle qui se déclenche sur un évènement RDS :
  1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Sous Évènements dans le panneau de navigation, choisissez Règles.

  3. Choisissez Create rule.

  4. Dans Event source, effectuez l'une des opérations suivantes :

    1. Choisissez Modèle d'événement.

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

    3. 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).

  5. Pour Targets (Cibles), sélectionnez Add Target (Ajouter une cible) et choisissez le service AWS qui doit agir lorsqu'un évènement du type sélectionné est détecté.

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

  7. Pour de nombreux types de cibles, CloudWatch Events a besoin d'autorisations pour envoyer des évènements à la cible. Dans ce cas, CloudWatch Events peut créer le rôle IAM nécessaire à l'exécution 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.

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

  9. 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.

  10. Choisissez Create rule.

Pour plus d'informations, consultez Création d'une règle CloudWatch Events qui se déclenche sur un événement dans le Guide de l'utilisateur Amazon CloudWatch.

Tutoriel : journaliser les changements d'état de l'instance de base de données à l'aide d'Amazon EventBridge

Dans ce tutoriel, vous créez une fonction AWS Lambda 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.

Étape 1 : création d'une fonction AWS Lambda

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 console AWS Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  2. 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.

  3. Choisissez Créer à partir de scratch.

  4. 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.

    2. Dans Runtime, sélectionnez Node.js 16x.

    3. Pour Architecture, choisissez x86_64.

    4. 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.

    5. Sélectionnez Créer une fonction.

  5. Sur la page RDSInstanceStateChange, procédez comme suit :

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

    2. Dans le panneau index.js, supprimez le code existant.

    3. Saisissez le code suivant :

      console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
    4. Choisissez Deploy (Déployer).

Étape 2 : création d'une règle

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

Pour créer la règle EventBridge
  1. Ouvrez la console Amazon EventBridge à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Rules.

  3. Choisissez Create rule.

  4. Saisissez un nom et une description pour la règle. Par exemple, entrez RDSInstanceStateChangeRule.

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

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

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

  8. Pour Event source (Source d'événement), choisissez Services AWS.

  9. Pour Service AWS, choisissez Relational Database Service (RDS).

  10. Pour Event type (Type d'évènement), sélectionnez RDS DB Instance Event (évènement d'instance de base de données RDS).

  11. Laissez le modèle d'événement par défaut. Sélectionnez ensuite Next (Suivant).

  12. Pour Types de cibles, choisissez service AWS.

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

  14. Dans Function (Fonction), choisissez la fonction Lambda que vous avez créée. Sélectionnez ensuite Next (Suivant).

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

  16. 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

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/.

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

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

  4. Dans le volet de navigation, cliquez sur Rules (Règles), puis sur le nom de la règle que vous avez créée.

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

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

  6. 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.

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

  8. Cliquez sur le nom du groupe de journaux pour votre fonction Lambda (/aws/lambda/function-name).

  9. 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.

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