在 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 警报。

情景

警报会每隔一段时间(由您指定)监控一个指标,并根据相对于给定阈值的指标值每隔若干个时间段执行一项或多项操作。

本示例使用一系列 Node.js 模块在 CloudWatch 中创建警报。这些 Node.js 模块使用 SDK for JavaScript,通过 AWS.CloudWatch 客户端类的以下方法来创建警报:

有关 CloudWatch 警报的更多信息,请参阅的《Amazon CloudWatch 用户指南》中的创建 Amazon CloudWatch 告警

先决条件任务

要设置和运行此示例,您必须先完成以下任务:

描述警报

创建文件名为 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 上的此处找到。