Alarmaktionen in Amazon verwenden CloudWatch - AWS SDK for JavaScript

Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK for JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten 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.

Alarmaktionen in Amazon verwenden CloudWatch

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So ändern Sie den Status Ihrer Amazon EC2 EC2-Instances automatisch auf der Grundlage eines CloudWatch Alarms.

Das Szenario

Mithilfe von Alarmaktionen können Sie Alarme erstellen, die Ihre Amazon EC2 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 werden eine Reihe von Node.js -Modulen verwendet, um eine Alarmaktion zu definieren CloudWatch , die den Neustart einer Amazon EC2 EC2-Instance auslöst. Die Module Node.js verwenden das SDK für JavaScript die Verwaltung von Amazon EC2 EC2-Instances mithilfe der folgenden Methoden der CloudWatch Client-Klasse:

Weitere Informationen zu CloudWatch Alarmaktionen finden Sie unter Erstellen von Alarmen zum Stoppen, Beenden, Neustarten oder Wiederherstellen einer Instance im CloudWatch Amazon-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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:Describe*", "ec2:Describe*", "ec2:RebootInstances", "ec2:StopInstances*", "ec2:TerminateInstances" ], "Resource": [ "*" ] } ] }

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 Dateinamen cw_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 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 Dateinamen cw_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.