La AWS SDK pour JavaScript v2 a atteint la fin du support. Nous vous recommandons de migrer vers la AWS SDK pour JavaScript version 3. Pour plus de détails et d'informations sur la manière de migrer, veuillez consulter cette annonce
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 dans Amazon CloudWatch
Cet exemple Node.js de code montre :
Comment modifier automatiquement l'état de vos instances Amazon EC2 en fonction d'une CloudWatch alarme.
Scénario
À l'aide des actions d'alarme, vous pouvez créer des alarmes qui arrêtent, interrompent, 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 Node.js modules est utilisée pour définir une action d'alarme CloudWatch qui déclenche le redémarrage d'une instance Amazon EC2. Les Node.js modules utilisent le SDK pour gérer les instances Amazon EC2 JavaScript à l'aide des méthodes suivantes de la classe CloudWatch client :
Pour plus d'informations sur les actions CloudWatch d'alarme, voir Créer des alarmes pour arrêter, terminer, 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 :
-
Installer Node.js. Pour plus d'informations sur l'installation Node.js, consultez le Node.js site Web
. Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier d'informations d'identification partagé, consultez Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé.
-
Créez un rôle IAM dont la politique autorise la description, le redémarrage, l'arrêt ou la fermeture d'une instance Amazon EC2. Pour plus d'informations sur la création d'un rôle IAM, consultez la section Création d'un rôle pour déléguer des autorisations à un AWS service dans le Guide de l'utilisateur IAM.
Utilisez la stratégie de rôle suivante lors de la création du rôle IAM.
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 Node.js module avec le nom de fichiercw_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 pourputMetricAlarm, en cas de réussite, 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 Node.js module avec le nom de fichiercw_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