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
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:
Installieren Node.js. Weitere Informationen zur Installation Node.js finden Sie Node.js auf der Website
. Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der freigegebenen Anmeldeinformationsdatei.
Erstellen Sie mithilfe des Hello-World-Blueprints eine Lambda-Funktion, die als Ziel für Ereignisse dient. Wie das geht, erfahren Sie unter Schritt 1: AWS Lambda Funktion erstellen im Amazon CloudWatch Events-Benutzerhandbuch.
Erstellen Sie eine IAM-Rolle, deren Richtlinie die Berechtigung für CloudWatch Ereignisse gewährt und die auch
events.amazonaws.com.rproxy.govskope.caals vertrauenswürdige Entität gilt. Weitere Informationen zum Erstellen einer IAM-Rolle finden Sie im IAM-Benutzerhandbuch unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS Dienst.
Verwenden Sie die folgende Rollenrichtlinie beim Erstellen der IAM-Rolle.
Verwenden Sie beim Erstellen einer IAM-Rolle die folgende Vertrauensstellung.
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