GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un événement dans AWS Cloudwatch pour déclencher une fonction Lambda

Les événements Amazon CloudWatch décrivent les modifications apportées aux ressources AWS. Nous pouvons faire correspondre des événements et les acheminer vers une ou plusieurs fonctions cibles. Les événements CloudWatch prennent connaissance des changements opérationnels au fur et à mesure qu'ils se produisent, par ex. si une ressource définie dans la règle Cloudwatch a été créée, la règle en serait informée et, en retour, elle déclencherait une fonction cible.

Avant de continuer et de créer une règle d'événement, comprenons les bases de celle-ci.

  1. Événements  :
    Un événement signifie qu'il y a un changement dans l'environnement AWS.
  2. Règles :
    Les règles sont utilisées pour correspondre à l'événement. Ici, les événements sont comparés et vérifiés.
  3. Cibles :
    Ici les événements sont traités. Les cibles peuvent inclure des instances Amazon EC2, des fonctions AWS Lambda, des flux Kinesis, des tâches Amazon ECS, des machines d'état Step Functions, des rubriques Amazon SNS, des files d'attente Amazon SQS et des cibles intégrées.

Dans cet article, nous allons créer une règle d'événement qui vérifiera l'événement de changement d'état EC2 et déclenchera une fonction lambda. Si vous ne connaissez pas la fonction Lambda, cliquez ici pour en créer une pour vous. Ce que fait Lambda peut être votre choix, mais dans ce document, j'ai un Lambda qui supprime les volumes EBS inutilisés. J'ai mentionné le code Lambda dans cet article. Vous êtes également libre d'utiliser votre propre fonction Lambda.

Prérequis

  1. Compte AWS (créez si vous n'en avez pas).
  2. Fonction Lambda.

Qu'allons-nous faire ?

  1. Connectez-vous à AWS.
  2. Créez une règle d'événement Cloudwatch pour déclencher une fonction Lambda.

Connexion à AWS

Cliquez ici pour accéder à la page de connexion AWS.

Lorsque nous cliquons sur le lien ci-dessus, nous verrons une page Web comme suit où nous devons nous connecter en utilisant nos informations de connexion.

Une fois que vous vous êtes connecté avec succès à votre compte, vous verrez l'écran comme suit.

Créer un événement Cloudwatch pour déclencher une fonction Lambda

Pour créer une règle d'événement Cloudwatch, recherchez cloudwatch et cliquez sur le résultat pour accéder au tableau de bord Cloudwatch.

Sur le tableau de bord Cloudwatch, cliquez sur Règles sous Événements dans le panneau de gauche.

Ici, cliquez sur "Créer une règle" pour créer votre première règle afin de déclencher une fonction Lambda dans votre région.

Sélectionnez le bouton radio « Modèle d'événement », sous Nom du service, sélectionnez « EC2 », sélectionnez « Notification de changement d'état de l'instance EC2 » pour le type d'événement.

Cliquez sur Ajouter des cibles pour ajouter une fonction Lambda existante en tant que cible et cliquez sur "Configurer les détails".

Cliquez ici pour apprendre à créer une fonction Lambda pour vous. Trouvez le code Lambda de référence suivant pour vous.

Code Lambda :  Utilisez ce code pour créer une fonction Lambda si vous n'en avez pas 1 dans votre compte.

import boto3
ec2 = boto3.resource('ec2',region_name='eu-west-3')
 
def lambda_handler(event, context):
    for vol in ec2.volumes.all():
        if  vol.state=='available':
            if vol.tags is None:
                vid=vol.id
                v=ec2.Volume(vol.id)
                v.delete()
                print ('EBS Volume Deleted ' +vid)
                continue
            for tag in vol.tags:
                if tag['Key'] == 'Name':
                    value=tag['Value']
                    if value != 'DoNNotDel' and vol.state=='available':
                        vid=vol.id
                        v=ec2.Volume(vol.id)
                        v.delete()
                        print ('EBS Volume Deleted ' +vid) 

Donnez un nom à l'événement avec la description et cliquez sur "Créer une règle".

Cela créera une règle d'événement qui déclenchera une fonction Lambda cible chaque fois qu'il y a un changement dans l'état des instances EC2.

Conclusion

Dans cet article, nous avons vu comment créer une règle d'événement Cloudwatch qui indique le changement d'état de l'instance EC2 et déclenche la fonction Lambda lorsque la règle correspond à l'événement. Vous pouvez sélectionner la cible de votre choix.


Linux
  1. Comment créer et ajouter un volume EBS dans une instance AWS (EC2)

  2. Comment envoyer des journaux d'application Linux à AWS CloudWatch

  3. Comment créer une instance RDS sur AWS à l'aide de Terraform

  4. Comment créer un rôle IAM dans AWS à l'aide de Terraform

  5. Comment créer et appeler des fonctions dans Bash

Comment créer une instance Amazon AWS EC2 à l'aide de Python Boto3

Comment créer un compartiment S3 à l'aide de Python Boto3 sur AWS

Comment créer une rubrique SNS et un abonné sur AWS

Comment créer une table DynamoDB dans AWS

Comment créer un cluster Kubernetes avec AWS CLI

Comment utiliser Cloudformation pour créer des files d'attente SQS sur AWS