View a markdown version of this page

Ereignisse an Amazon CloudWatch Events senden - AWS SDK für JavaScript

Die AWS SDK für JavaScript Version 2 hat das Ende des Supports erreicht. Wir empfehlen Ihnen, auf Version 3 zu AWS SDK für JavaScript migrieren. Weitere Einzelheiten und Informationen zur Migration finden Sie in dieser Ankündigung.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ereignisse an Amazon CloudWatch Events senden

JavaScript code example that applies to Node.js execution

Dieses Node.js Codebeispiel zeigt:

  • So erstellen und aktualisieren Sie eine Regel für das Auslösen eines Ereignisses.

  • So definieren Sie ein oder mehrere Ziele für die Reaktion auf ein Ereignis.

  • So senden Sie Ereignisse, die Zielen zur Bearbeitung zugeordnet sind.

Das Szenario

CloudWatch Events liefert nahezu in Echtzeit einen Stream von Systemereignissen, die Änderungen der Amazon Web Services-Ressourcen für verschiedene Ziele beschreiben. Mit einfachen Regeln können Sie Ereignisse zuordnen und sie zu einer oder mehreren Zielfunktionen oder Streams umleiten.

In diesem Beispiel wird eine Reihe von Node.js Modulen verwendet, um Ereignisse an CloudWatch Events zu senden. Die Node.js Module verwenden das SDK für JavaScript , um Instanzen mithilfe der folgenden Methoden der CloudWatchEvents Client-Klasse zu verwalten:

Weitere Informationen zu CloudWatch Veranstaltungen finden Sie unter Hinzufügen von Ereignissen mit PutEvents im Amazon CloudWatch Events-Benutzerhandbuch.

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

Verwenden Sie die folgende Rollenrichtlinie beim Erstellen der IAM-Rolle.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CloudWatchEventsFullAccess", "Effect": "Allow", "Action": "events:*", "Resource": "*" }, { "Sid": "IAMPassRoleForCloudWatchEvents", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets" } ] }

Verwenden Sie beim Erstellen einer IAM-Rolle die folgende Vertrauensstellung.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Erstellen einer geplanten Regel

Erstellen Sie ein Node.js Modul mit dem Dateinamen. cwe_putrule.js Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf CloudWatch Ereignisse zuzugreifen, erstellen Sie ein AWS.CloudWatchEvents Serviceobjekt. Erstellen Sie ein JSON-Objekt, welches die für die neue geplante Regel erforderlichen Parameter enthält, darunter die folgenden:

  • Einen Namen für die Regel

  • Der ARN der IAM-Rolle, die Sie zuvor erstellt haben

  • Einen Ausdruck zum Auslösen der Regel alle fünf Minuten

Rufen Sie die putRule-Methode auf, um die Regel zu erstellen. Der Callback gibt den ARN der neuen oder aktualisierten Regel zurück.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Name: "DEMO_EVENT", RoleArn: "IAM_ROLE_ARN", ScheduleExpression: "rate(5 minutes)", State: "ENABLED", }; cwevents.putRule(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.RuleArn); } });

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node cwe_putrule.js

Diesen Beispielcode finden Sie hier auf GitHub.

Hinzufügen eines AWS Lambda Funktion: Ziel

Erstellen Sie ein Node.js Modul mit dem Dateinamencwe_puttargets.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf CloudWatch Ereignisse zuzugreifen, erstellen Sie ein AWS.CloudWatchEvents Serviceobjekt. Erstellen Sie ein JSON-Objekt, das die Parameter enthält, die zur Angabe der Regel erforderlich sind, an die Sie das Ziel anhängen möchten, einschließlich des ARN der Lambda-Funktion, die Sie erstellt haben. Rufen Sie die putTargets-Methode des AWS.CloudWatchEvents-Serviceobjekts auf.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Rule: "DEMO_EVENT", Targets: [ { Arn: "LAMBDA_FUNCTION_ARN", Id: "myCloudWatchEventsTarget", }, ], }; cwevents.putTargets(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node cwe_puttargets.js

Diesen Beispielcode finden Sie hier auf GitHub.

Senden von Ereignissen

Erstellen Sie ein Node.js Modul mit dem Dateinamencwe_putevents.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf CloudWatch Ereignisse zuzugreifen, erstellen Sie ein AWS.CloudWatchEvents Serviceobjekt. Erstellen Sie ein JSON-Objekt, welches die für das Senden von Ereignissen erforderlichen Parameter enthält. Geben Sie für jedes Ereignis die Quelle des Ereignisses, die ARNs aller vom Ereignis betroffenen Ressourcen sowie Details zum Ereignis an. Rufen Sie die putEvents-Methode des AWS.CloudWatchEvents-Serviceobjekts auf.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Entries: [ { Detail: '{ "key1": "value1", "key2": "value2" }', DetailType: "appRequestSubmitted", Resources: ["RESOURCE_ARN"], Source: "com.company.app", }, ], }; cwevents.putEvents(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Entries); } });

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node cwe_putevents.js

Diesen Beispielcode finden Sie hier auf GitHub.