Utilisation des actions d'alarme sur Amazon CloudWatch - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des actions d'alarme sur Amazon CloudWatch

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment modifier automatiquement l'état de vos instances Amazon EC2 en fonction d'une CloudWatch alarme.

Scénario

À l'aide d'actions d'alarme, vous pouvez créer des alarmes qui arrêtent, mettent fin, redémarrent ou restaurent automatiquement vos instances Amazon EC2. Vous pouvez utiliser les actions d'arrêt ou de mise hors service quand vous n'avez plus besoin qu'une instance s'exécute. Vous pouvez utiliser les actions de redémarrage et de récupération pour redémarrer automatiquement ces instances.

Dans cet exemple, une série de modules Node.js sont utilisés pour définir une action d'alarme CloudWatch qui déclenche le redémarrage d'une instance Amazon EC2. Les modules Node.js utilisent le SDK pour gérer les instances Amazon EC2 JavaScript à l'aide des méthodes suivantes de CloudWatch la classe client :

Pour plus d'informations sur les actions CloudWatch d'alarme, consultez la section Créer des alarmes pour arrêter, résilier, redémarrer ou récupérer une instance dans le guide de CloudWatch l'utilisateur Amazon.

Tâches prérequises

Pour configurer et exécuter cet exemple, vous devez d'abord :

Utilisez la stratégie de rôle suivante lors de la création du rôle IAM.

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

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est us-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});

Création et activation d'actions sur une alarme

Créez un module Node.js nommé cw_enablealarmactions.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet AWS.CloudWatch de service.

Créez un objet JSON qui contiendra les paramètres nécessaires à la création d'une alarme, en spécifiant la valeur true pour ActionsEnabled et un ensemble d'ARN pour les actions qui seront déclenchées par l'alarme. Appelez la méthode putMetricAlarm de l'objet de service AWS.CloudWatch, qui crée l'alarme si elle n'existe pas ou la met à jour si elle existe.

Dans la fonction de rappel duputMetricAlarm, une fois l'opération terminée, créez un objet JSON contenant le nom de l' CloudWatch alarme. Appelez la méthode enableAlarmActions pour activer l'action d'alarme.

// 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); } }); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node cw_enablealarmactions.js

Cet exemple de code se trouve ici sur GitHub.

Désactivation des actions sur une alarme

Créez un module Node.js nommé cw_disablealarmactions.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet AWS.CloudWatch de service. Créez un objet JSON contenant le nom de l' CloudWatch alarme. Appelez la méthode disableAlarmActions pour désactiver les actions pour cette alarme.

// 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); } } );

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node cw_disablealarmactions.js

Cet exemple de code se trouve ici sur GitHub.