Amazon CloudWatch のアラームの作成 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

Amazon CloudWatch のアラームの作成

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • CloudWatch アラームに関する基本的な情報を取得する方法。

  • CloudWatch アラームを作成および削除する方法。

シナリオ

アラームは、指定期間にわたって単一のメトリクスを監視し、指定したしきい値に対応したメトリクスの値に基づいて、期間数にわたって 1 つ以上のアクションを実行します。

この例では、CloudWatch でアラームを作成するために一連の Node.js モジュールが使用されています。Node.js モジュールは、SDK for JavaScript を使用し、AWS.CloudWatch クライアントクラスのこれらのメソッドを使用してアラームを作成します。

CloudWatch アラームの詳細については、Amazon CloudWatch ユーザーガイドAmazon CloudWatch アラームの作成を参照してください。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。

アラームの記述

cw_describealarms.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。CloudWatch にアクセスするには、AWS.CloudWatch サービスオブジェクトを作成します。アラームの記述を取得するためのパラメータを保持する JSON オブジェクトを作成し、INSUFFICIENT_DATA 状態のアラームのみが返されるように制限します。次に、AWS.CloudWatch サービスオブジェクトの describeAlarms メソッドを呼び出します。

// 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.describeAlarms({ StateValue: "INSUFFICIENT_DATA" }, function (err, data) { if (err) { console.log("Error", err); } else { // List the names of all current alarms in the console data.MetricAlarms.forEach(function (item, index, array) { console.log(item.AlarmName); }); } });

この例を実行するには、コマンドラインに次のように入力します。

node cw_describealarms.js

このサンプルコードは、このGitHubにあります。

CloudWatch メトリクスのアラームの作成

cw_putmetricalarm.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。CloudWatch にアクセスするには、AWS.CloudWatch サービスオブジェクトを作成します。メトリクス (この場合は Amazon EC2 インスタンスの CPU 使用率) に基づくアラームを作成するために必要なパラメータ用の JSON オブジェクトを作成します。残りのパラメータは、メトリクスがしきい値である 70 パーセントを超えたときにアラームをトリガーするように設定されています。次に、AWS.CloudWatch サービスオブジェクトの describeAlarms メソッドを呼び出します。

// 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: false, 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("Success", data); } });

この例を実行するには、コマンドラインに次のように入力します。

node cw_putmetricalarm.js

このサンプルコードは、このGitHubにあります。

アラームの削除

cw_deletealarms.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。CloudWatch にアクセスするには、AWS.CloudWatch サービスオブジェクトを作成します。削除するアラームの名前を保持するための JSON オブジェクトを作成します。次に、AWS.CloudWatch サービスオブジェクトの deleteAlarms メソッドを呼び出します。

// 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 = { AlarmNames: ["Web_Server_CPU_Utilization"], }; cw.deleteAlarms(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

この例を実行するには、コマンドラインに次のように入力します。

node cw_deletealarms.js

このサンプルコードは、このGitHubにあります。