Wie zu Verwenden CloudWatch Veranstaltungen für AWS Automation

0
165

CloudWatch wird Häufig verwendet, für die log-Verarbeitung und überwachung Ihrer AWS-Ressourcen, aber es hat auch leistungsfähige Werkzeuge für die Automatisierung in Ihrem Konto. Wir zeigen, wie einrichten und arbeiten mit CloudWatch-Veranstaltungen.

Was Ist CloudWatch-Events?

CloudWatch-Events ist ein service von AWS, die im Grunde maps Ursache zu Wirkung mit Aktionen geschieht in Ihrem Konto. Es kann die route-API-Ereignisse, wie eine EC2-Instanz beenden oder ein Objekt hochgeladen wird zu einem S3-bucket, und schicken Sie Sie zu anderen Diensten wie Lambda-Funktionen oder messaging-Warteschlangen.

Mit einfachen Regeln, können Sie die match-Ereignissen auf der Grundlage der service, den Sie gekommen sind. Ereignisse sind JSON-Objekte, die an CloudWatch durch Handlungen geschieht in Ihrem Konto. Zum Beispiel, ein event für das beenden einer EC2-Instanz könnte wie folgt Aussehen:

{
“version”: “0”,
“id”: “6a7e8feb-b491-4cf7-a9f1-bf3703467718”,
“detail-Typ”: “EC2-Instance State change Notification”,
“source”: “aws.ec2”,
“Konto”: “111122223333”,
“Zeit”: “2017-12-22T18:43:48Z”,
“region”: “us-west-1”,
“resources”: [
“arn:aws:ec2:us-west-1: (patientennummer) 123456789012:Instanz/ i-1234567890abcdef0”
],
“detail”: {
“Instanz-id”: “ich-1234567890abcdef0”,
“state”: “beendet”
}
}

Man kann einen Listener für diese Ereignisse und sendet Sie zu anderen Dienstleistungen, die als Ziele bezeichnet. Diese können Lambda-Funktionen gebaut, um diese zu bewältigen Nutzlast, ein SNS-Thema, eine SQS-Warteschlange, oder andere Aktionen wie ECS Aufgaben und CodePipeline. Mit der Möglichkeit, die route zu Lambda, können Sie das Programm alle Funktionen, die Sie möchten, so dass dies eine sehr nützliche Funktion für account-automation.

Zum Beispiel, wenn Sie laufen wollte, ein ECS-Aufgabe, wie Foto-oder video-Bearbeitung, wenn Sie ein Objekt hochgeladen wurde, ist zu einem S3-bucket, den Sie erreichen können mit CloudWatch Ereignisse ganz einfach. Legen Sie einfach die Quelle zu entsprechen PutObject-Operationen, und senden Sie die Veranstaltung über ein ECS-task für die Verarbeitung.

Viele andere AWS-tools verwenden CloudWatch Ereignisse als gut, so dass Sie miight bereits einige Regeln aufgestellt. Wenn Sie CodePipeline, es verwendet einen CloudWatch-Ereignis zum überwachen der source-repository für Veränderungen und lösen die CI – /CD-pipeline in der Antwort.

Ereignisse müssen nicht ausgelöst werden, die von einer Aktion in Ihrem Konto. Alternativ können Sie das Ereignis zu laufen, zu einem festen Zeitintervall, der im wesentlichen als cron von AWS. Sie können diese verwenden, um Zeitplan Lambda-Funktionen, die automatisch ausgeführt werden.

Einrichten eines Ereignis-Regel

Von den CloudWatch-Konsole, klicken Sie auf “Regeln” in der Seitenleiste aus und erstellen eine neue Regel.

Es sei denn, Sie wollen dieses Ereignis automatisch ausgeführt werden, stellen Sie die Quelle auf “Ereignis-Muster.” Sie können einen service-Namen, hier um filter, die für verschiedene event-Typen.

Für S3 können Sie wählen Sie “Objekt-Level-Operationen”, und wählen Sie eine bestimmte Art der operation, wie PutObject. Sie können auch wählen Sie eine bestimmte Kübel (oder Eimer) mit Namen.

Auf der rechten Seite können Sie das gewünschte Ziel auswählen. Es wird standardmäßig auf “Lambda-Funktion” müssen Sie nur wählen Sie eine Funktion gebaut, um das Ereignis behandeln.

Für Lambda, das Ereignis übergeben wird, wie die Ereignis-variable. Sie können dies nutzen, um Zugriff auf details über die PutObject-Funktion wie eine Referenz auf das Objekt selbst, die Sie verwenden können, um Zugriff zu haben.

Wenn Sie nur testen CloudWatch-Veranstaltungen, können Sie eine Funktion wie die folgende, um einfach melden Sie das Ereignis übergeben werden. Finden Sie die Lambda-Funktion, die Protokolle unter dem “Monitoring” – Registerkarte für die Funktion.

‘use strict’;

die Exporte.handler = (Ereignis, Kontext, callback) => {
console.log(‘LogCloudWatchEvent’);
console.log (“Received event:’, JSON.stringify(event, null, 2));
callback(null, ‘Fertig’);
};

Sie, natürlich, nicht beschränkt auf die Verwendung von Lambda-Funktionen. Für die Intensive berechnen, können Sie die route, die die Veranstaltung zu einem ECS-Aufgabe, die die volle power von Fargate und EC2 zum ausführen von Container-Anwendungen.

Andere Optionen sind ebenfalls verfügbar, in der Regel mit routing zu tun, die Veranstaltung woanders, wie ein Kinesis-stream, SNS-Thema, oder SQS-Warteschlange.

Die Regeln sind überschaubar von der CloudWatch-Konsole, einschließlich eines monitoring-Registerkarte, um zu zeigen, Metriken, wie oft die Regel ausgeführt wird.