Wie man ein Ereignis in AWS Cloudwatch erstellt, um eine Lambda-Funktion auszulösen

Amazon CloudWatch Events beschreiben Änderungen in AWS-Ressourcen. Wir können Events abgleichen und sie an eine oder mehrere Zielfunktionen weiterleiten. CloudWatch Events werden über betriebliche Änderungen informiert, sobald sie auftreten. Wenn z. B. eine in der Cloudwatch-Regel definierte Ressource erstellt wurde, erfährt die Regel davon und löst im Gegenzug eine Zielfunktion aus.

Bevor wir fortfahren und eine Ereignisregel erstellen, sollten wir die Grundlagen verstehen.

  1. Ereignisse:
    Ein Ereignis bedeutet, dass es eine Veränderung in der AWS-Umgebung gibt.
  2. Regeln:
    Regeln werden verwendet, um das Ereignis abzugleichen. Hier werden die Ereignisse verglichen und geprüft.
  3. Ziele:
    Hier werden die Ereignisse verarbeitet. Ziele können Amazon EC2-Instanzen, AWS Lambda-Funktionen, Kinesis-Streams, Amazon ECS-Tasks, Step Functions-Zustandsmaschinen, Amazon SNS-Themen, Amazon SQS-Warteschlangen und integrierte Ziele sein.

In diesem Artikel werden wir eine Ereignisregel erstellen, die das Ereignis einer EC2-Zustandsänderung überprüft und eine Lambda-Funktion auslöst. Wenn du Lambda-Funktionen noch nicht kennst, klicke hier, um eine zu erstellen. Welche Lambda-Funktion du auslöst, bleibt dir überlassen, aber in diesem Dokument habe ich eine Lambda-Funktion erstellt, die die ungenutzten EBS-Volumes löscht. Ich habe den Lambda-Code in diesem Artikel erwähnt. Es steht dir frei, auch deine eigene Lambda-Funktion zu verwenden.

Vorraussetzungen

  1. AWS-Konto (Erstelle es, wenn du noch keines hast).
  2. Lambda-Funktion.

Was müssen wir tun?

  1. Melde dich bei AWS an.
  2. Erstelle eine Cloudwatch-Ereignisregel, um eine Lambda-Funktion auszulösen.

Anmeldung bei AWS

Klicke hier, um zur AWS-Anmeldeseite zu gelangen.

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

Sobald du dich erfolgreich in dein Konto eingeloggt hast, siehst du den folgenden Bildschirm.

Ein Cloudwatch-Ereignis erstellen, um eine Lambda-Funktion auszulösen

Um eine Cloudwatch-Ereignisregel zu erstellen, suche nach Cloudwatch und klicke auf das Ergebnis, um zum Cloudwatch-Dashboard zu gelangen.

Im Cloudwatch-Dashboard klickst du im linken Bereich unter Ereignisse auf Regeln.

Klicke hier auf „Regel erstellen“, um deine erste Regel zum Auslösen einer Lambda-Funktion in deiner Region zu erstellen.

Wähle das Optionsfeld „Event Pattern“, wähle unter Service Name „EC2“ und wähle „EC2 instance state change notification“ als Event Type.

Klicke auf „Ziele hinzufügen“, um eine bestehende Lambda-Funktion als Ziel hinzuzufügen und klicke auf „Details konfigurieren“.

Klickehier, um zu lernen, wie du eine Lambda Function für dich erstellst. Finde den folgenden Referenz-Lambda-Code für dich.

Lambda Code:Verwende diesen Code, um eine Lambda Function zu erstellen, wenn du noch keine in deinem Konto hast.

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) 

Gib dem Ereignis einen Namen und eine Beschreibung und klicke auf „Regel erstellen“.

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

Fazit

In diesem Artikel haben wir gesehen, wie man eine Cloudwatch-Ereignisregel erstellt, die die Änderung des Zustands der EC2-Instanz anzeigt und die Lambda-Funktion auslöst, wenn die Regel auf das Ereignis zutrifft. Du kannst das Ziel deiner Wahl auswählen.

Das könnte dich auch interessieren …