GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie ein Ereignis in AWS Cloudwatch, um eine Lambda-Funktion auszulösen

Amazon CloudWatch Events beschreiben Änderungen in AWS-Ressourcen. Wir können Ereignisse abgleichen und sie an eine oder mehrere Zielfunktionen weiterleiten. CloudWatch-Ereignisse erfahren von betrieblichen Änderungen, sobald sie auftreten, z. Wenn eine definierte Ressource in der Cloudwatch-Regel erstellt wurde, würde die Regel davon erfahren und im Gegenzug eine Zielfunktion auslösen.

Bevor wir fortfahren und eine Ereignisregel erstellen, lassen Sie uns die Grundlagen verstehen.

  1. Ereignisse :
    Ein Ereignis bedeutet, dass es eine Änderung in der AWS-Umgebung gibt.
  2. Regeln :
    Regeln werden verwendet, um dem Ereignis zu entsprechen. Hier werden die Ereignisse verglichen und überprüft.
  3. Ziele :
    Hier werden die Ereignisse verarbeitet. Zu den Zielen können Amazon EC2-Instances, AWS Lambda-Funktionen, Kinesis-Streams, Amazon ECS-Aufgaben, Step Functions-Zustandsmaschinen, Amazon SNS-Themen, Amazon SQS-Warteschlangen und integrierte Ziele gehören.

In diesem Artikel erstellen wir eine Ereignisregel, die auf Ereignisse einer EC2-Statusänderung prüft und eine Lambda-Funktion auslöst. Wenn Sie die Lambda-Funktion nicht kennen, klicken Sie hier, um 1 für Sie zu erstellen. Was Lambda tut, kann Ihre Wahl sein, aber in diesem Dokument habe ich ein Lambda, das die nicht verwendeten EBS-Volumes löscht. Ich habe den Lambda-Code in diesem Artikel erwähnt. Sie können auch Ihre eigene Lambda-Funktion verwenden.

Voraussetzungen

  1. AWS-Konto (erstellen wenn Sie noch keins haben).
  2. Lambda-Funktion.

Was werden wir tun?

  1. Melden Sie sich bei AWS an.
  2. Erstellen Sie eine Cloudwatch-Ereignisregel, um eine Lambda-Funktion auszulösen.

Melden Sie sich bei AWS an

Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen.

Wenn wir auf den obigen Link klicken, sehen wir eine Webseite wie folgt, auf der wir uns mit unseren Anmeldedaten anmelden müssen.

Sobald Sie sich erfolgreich bei Ihrem Konto angemeldet haben, sehen Sie den folgenden Bildschirm.

Erstellen Sie ein Cloudwatch-Ereignis, um eine Lambda-Funktion auszulösen

Um eine Cloudwatch-Ereignisregel zu erstellen, suchen Sie nach cloudwatch und klicken Sie auf das Ergebnis, um zum Cloudwatch-Dashboard zu gelangen.

Klicken Sie im Cloudwatch-Dashboard im linken Bereich unter Ereignisse auf Regeln.

Klicken Sie hier auf „Regel erstellen“, um Ihre erste Regel zum Auslösen einer Lambda-Funktion in Ihrer Region zu erstellen.

Wählen Sie das Optionsfeld „Ereignismuster“ aus, wählen Sie unter „Dienstname“ „EC2“ aus und wählen Sie als Ereignistyp „Benachrichtigung über Statusänderung der EC2-Instanz“ aus.

Klicken Sie auf „Ziele hinzufügen“, um eine vorhandene Lambda-Funktion als Ziel hinzuzufügen, und klicken Sie auf „Details konfigurieren“.

Klicken Sie hier, um zu erfahren, wie Sie eine Lambda-Funktion für Sie erstellen. Finden Sie den folgenden Referenz-Lambda-Code für Sie.

Lambda-Code:  Verwenden Sie diesen Code, um eine Lambda-Funktion zu erstellen, wenn Sie keine in Ihrem Konto haben.

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) 

Geben Sie der Veranstaltung einen Namen mit Beschreibung und klicken Sie auf "Regel erstellen".

Dadurch wird eine Ereignisregel erstellt, die eine Ziel-Lambda-Funktion auslöst, wenn sich der Status von EC2-Instanzen ändert.

Schlussfolgerung

In diesem Artikel haben wir gesehen, wie eine Cloudwatch-Ereignisregel erstellt wird, die die Änderung des EC2-Instance-Zustands anzeigt und die Lambda-Funktion auslöst, wenn die Regel mit dem Ereignis übereinstimmt. Sie können das Ziel Ihrer Wahl auswählen.


Linux
  1. So erstellen und fügen Sie ein EBS-Volume in einer AWS-Instanz (EC2) hinzu

  2. So senden Sie Linux-Anwendungsprotokolle an AWS CloudWatch

  3. So erstellen Sie eine RDS-Instance auf AWS mit Terraform

  4. So erstellen Sie eine IAM-Rolle in AWS mit Terraform

  5. So erstellen und rufen Sie Funktionen in Bash auf

So erstellen Sie eine Amazon AWS EC2-Instanz mit Python Boto3

So erstellen Sie einen S3-Bucket mit Python Boto3 auf AWS

So erstellen Sie ein SNS-Thema und einen Abonnenten auf AWS

So erstellen Sie eine DynamoDB-Tabelle in AWS

So erstellen Sie einen Kubernetes-Cluster mit AWS CLI

So verwenden Sie Cloudformation zum Erstellen von SQS-Warteschlangen auf AWS