Didacticiel : Journalisation de l'état d'une instance Amazon EC2 à l'aide d'EventBridge - Amazon EventBridge

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.

Didacticiel : Journalisation de l'état d'une instance Amazon EC2 à l'aide d'EventBridge

Vous pouvez créer une fonction AWS Lambda qui journalise un changement d'état pour une instance Amazon EC2. Vous pouvez donc créer une règle qui exécute la fonction Lambda à chaque changement d'état ou chaque fois qu'une transition vers un ou plusieurs états notables se produit. Dans ce didacticiel, vous consignez le lancement d'une nouvelle instance.

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

Créez une fonction Lambda pour journaliser les évènements de changement d'état. Lorsque vous créerez la règle à l'étape 2, vous spécifierez cette fonction.

Pour créer une fonction Lambda
  1. Ouvrez la console AWS Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  2. Sélectionnez Create function (Créer une fonction).

  3. Choisissez Créer à partir de zéro.

  4. Saisissez un nom et une description pour la fonction Lambda. Par exemple, nommez la fonction LogEC2InstanceStateChange.

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

  6. Dans l'onglet Code de la page de fonction, double-cliquez sur index.js.

  7. Remplacez le code existant par le code suivant.

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2InstanceStateChange'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. Choisissez Deploy (Déployer).

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

Créez une règle pour exécuter la fonction Lambda que vous avez créée à l'étape 1. La règle s'exécute lorsque vous lancez une instance Amazon EC2.

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, nommez la règle TestRule

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

  6. Pour Rule type (Type de règle), choisissez Rule with an event pattern (Règle avec un modèle d'événement).

  7. Choisissez Next (Suivant).

  8. Pour Event source (Origine de l'événement), choisissez AWSservices (Services ).

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

    2. Pour Type d'événement, choisissez Notifications de changement d'état d'instance EC2.

    3. Choisissez État(s) spécifique(s), puis En cours d'exécution dans la liste déroulante.

    4. Sélectionnez Toute instance.

  10. Choisissez Next (Suivant).

  11. Pour Types de cibles, choisissez service AWS.

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

  13. 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 LogEC2InstanceStateChange.

  14. Choisissez Next (Suivant).

  15. Choisissez Next (Suivant).

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

Étape 3 : test de la règle

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

Pour tester votre règle en arrêtant une instance
  1. Ouvrez la console Amazon EC2 sur https://console.aws.amazon.com/ec2/.

  2. Lancez une instance. Pour de plus amples informations, veuillez consulter Lancer votre instance dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.

  3. Arrêtez l'instance. Pour plus d'informations, veuillez consulter Arrêter et démarrage de votre instance dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.

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

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

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

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

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

  5. (Facultatif) Lorsque vous avez terminé, mettez fin à l'instance arrêtée. Pour plus d'informations, consultez Résilier votre instance dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.

Étape 4 : Confirmer la bonne exécution

Si l'événement Lambda se trouve dans les journaux CloudWatch, cela signifie que vous avez correctement effectué ce didacticiel. Si l'événement ne figure pas dans vos journaux CloudWatch, essayez de résoudre le problème en vérifiant d'abord que la règle a bien été créée. Si celle-ci semble correcte, vérifiez que le code de votre fonction Lambda l'est également.

Étape 5 : Nettoyer vos ressources

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

Pour supprimer la ou les règles EventBridge
  1. Ouvrez la page Règles de la console EventBridge.

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

  3. Choisissez Supprimer.

  4. Choisissez Supprimer.

Pour supprimer la ou les fonctions Lambda
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

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

  3. Sélectionnez Actions, Delete (Supprimer).

  4. Sélectionnez Delete.