Wir haben das Kommende end-of-support für AWS SDK für JavaScript v2 angekündigt
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 an den Amazon Web Services 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 werden eine Reihe von Node.js -Modulen verwendet, um Ereignisse an CloudWatch Events zu senden. Die Module Node.js verwenden das SDK für JavaScript die Verwaltung von Instanzen mithilfe der folgenden Methoden der CloudWatchEvents
Client-Klasse:
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 Sie Node.js. Weitere Informationen über die Installation von Node.js finden Sie auf der Node.js-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 Berechtigungen für CloudWatch Veranstaltungen gewährt, und dazu gehört auch
events.amazonaws.com
die Rolle „Vertrauenswürdige Entität“. Weitere Informationen zum Erstellen einer IAM-Rolle finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.
Verwenden Sie die folgende Rollenrichtlinie beim Erstellen der IAM-Rolle.
{
"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.
{
"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 unter GitHub.
Ein AWS Lambda Funktionsziel hinzufügen
Erstellen Sie ein Node.js-Modul mit dem Dateinamen cwe_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 mit den Parametern, die zur Angabe der Regel erforderlich sind, an die Sie das Ziel anhängen möchten, einschließlich des ARN der von Ihnen erstellten Lambda-Funktion. 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 Dateinamen cwe_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, alle vom Ereignis betroffenen Ressourcen und Details zum Ereignis an. ARNs 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 unter GitHub