我们已宣布
在 Amazon CloudWatch 中创建警报
此 Node.js 代码示例演示:
如何检索有关 CloudWatch 警报的基本信息。
如何创建和删除 CloudWatch 警报。
情景
警报会每隔一段时间(由您指定)监控一个指标,并根据相对于给定阈值的指标值每隔若干个时间段执行一项或多项操作。
本示例使用一系列 Node.js 模块在 CloudWatch 中创建警报。这些 Node.js 模块使用 SDK for JavaScript,通过 AWS.CloudWatch
客户端类的以下方法来创建警报:
有关 CloudWatch 警报的更多信息,请参阅的《Amazon CloudWatch 用户指南》中的创建 Amazon CloudWatch 告警。
先决条件任务
要设置和运行此示例,您必须先完成以下任务:
安装 Node.js。有关安装 Node.js 的更多信息,请参阅 Node.js 网站
。 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证。
描述警报
创建文件名为 cw_describealarms.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 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 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch,请创建 AWS.CloudWatch
服务对象。针对基于指标创建警报所需的参数创建 JSON 对象,在本示例中指标为 Amazon EC2 实例的 CPU 利用率。其余参数设置为在指标超过 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 模块。请确保按前面所示配置开发工具包。要访问 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 上的此处