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.
Verwendung von Alarmaktionen in Amazon CloudWatch
Dieses Node.js Codebeispiel zeigt:
So ändern Sie den Status Ihrer Amazon EC2-Instances automatisch auf der Grundlage eines CloudWatch Alarms.
Das Szenario
Mithilfe von Alarmaktionen können Sie Alarme erstellen, die Ihre Amazon EC2-Instances automatisch stoppen, beenden, neu starten oder wiederherstellen. Sie können die Aktionen zum Anhalten oder Beenden nutzen, wenn eine Instance nicht mehr ausgeführt werden muss. Sie können die Aktionen zum Neustarten oder Wiederherstellen verwenden, um diese Instances automatisch neu zu starten.
In diesem Beispiel wird eine Reihe von Node.js Modulen verwendet, um eine Alarmaktion zu definieren CloudWatch , die den Neustart einer Amazon EC2-Instance auslöst. Die Node.js Module verwenden das SDK JavaScript zur Verwaltung von Amazon EC2-Instances mithilfe der folgenden Methoden der CloudWatch Client-Klasse:
Weitere Informationen zu CloudWatch Alarmaktionen finden Sie im CloudWatch Amazon-Benutzerhandbuch unter Erstellen von Alarmen zum Beenden, Beenden, Neustarten oder Wiederherstellen einer Instance.
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 eine IAM-Rolle, deren Richtlinie die Erlaubnis erteilt, eine Amazon EC2-Instance zu beschreiben, neu zu starten, zu stoppen oder zu beenden. Weitere Informationen zum Erstellen einer IAM-Rolle finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS Service im IAM-Benutzerhandbuch.
Verwenden Sie die folgende Rollenrichtlinie beim Erstellen der IAM-Rolle.
Konfigurieren Sie das SDK für, JavaScript indem Sie ein globales Konfigurationsobjekt erstellen und dann die Region für Ihren Code festlegen. In diesem Beispiel ist die Region auf us-west-2 festgelegt.
// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});
Erstellen und Aktivieren von Alarmaktionen
Erstellen Sie ein Node.js Modul mit dem Dateinamencw_enablealarmactions.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um darauf zuzugreifen CloudWatch, erstellen Sie ein AWS.CloudWatch Serviceobjekt.
Erstellen Sie ein JSON-Objekt für die Parameter, die für das Erstellen eines Alarms erforderlich sind. Geben Sie dabei ActionsEnabled als true und ein Array von ARNs für die Aktionen an, die der Alarm auslösen soll. Rufen Sie die putMetricAlarm-Methode des AWS.CloudWatch-Serviceobjekts auf, die den Alarm erstellt, wenn er nicht vorhanden ist, oder diesen aktualisiert, sofern vorhanden.
Erstellen Sie in der Callback-Funktion für den nach erfolgreichem Abschluss ein JSON-ObjektputMetricAlarm, das den Namen des CloudWatch Alarms enthält. Rufen Sie die enableAlarmActions-Methode auf, um die Alarmaktion zu aktivieren.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); var params = { AlarmName: "Web_Server_CPU_Utilization", ComparisonOperator: "GreaterThanThreshold", EvaluationPeriods: 1, MetricName: "CPUUtilization", Namespace: "AWS/EC2", Period: 60, Statistic: "Average", Threshold: 70.0, ActionsEnabled: true, AlarmActions: ["ACTION_ARN"], AlarmDescription: "Alarm when server CPU exceeds 70%", Dimensions: [ { Name: "InstanceId", Value: "INSTANCE_ID", }, ], Unit: "Percent", }; cw.putMetricAlarm(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Alarm action added", data); var paramsEnableAlarmAction = { AlarmNames: [params.AlarmName], }; cw.enableAlarmActions(paramsEnableAlarmAction, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Alarm action enabled", data); } }); } });
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node cw_enablealarmactions.js
Diesen Beispielcode finden Sie hier auf GitHub
Deaktivieren von Alarmaktionen
Erstellen Sie ein Node.js Modul mit dem Dateinamencw_disablealarmactions.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um darauf zuzugreifen CloudWatch, erstellen Sie ein AWS.CloudWatch Serviceobjekt. Erstellen Sie ein JSON-Objekt, das den Namen des CloudWatch Alarms enthält. Rufen Sie die disableAlarmActions-Methode auf, um die Aktionen für diesen Alarm zu deaktivieren.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); cw.disableAlarmActions( { AlarmNames: ["Web_Server_CPU_Utilization"] }, 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 cw_disablealarmactions.js
Diesen Beispielcode finden Sie hier auf GitHub