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.
- Ereignisse :
Ein Ereignis bedeutet, dass es eine Änderung in der AWS-Umgebung gibt. - Regeln :
Regeln werden verwendet, um dem Ereignis zu entsprechen. Hier werden die Ereignisse verglichen und überprüft. - 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
- AWS-Konto (erstellen wenn Sie noch keins haben).
- Lambda-Funktion.
Was werden wir tun?
- Melden Sie sich bei AWS an.
- 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.