

适用于 JavaScript 的 AWS SDK v2 已终止支持。建议您迁移到 [适用于 JavaScript 的 AWS SDK v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)。有关更多详情和如何迁移的信息，请参阅本[公告](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

# 在 Amazon CloudWatch 中创建警报
<a name="cloudwatch-examples-creating-alarms"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/zh_cn/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**此 Node.js 代码示例演示：**
+ 如何检索有关 CloudWatch 警报的基本信息。
+ 如何创建和删除 CloudWatch 警报。

## 情景
<a name="cloudwatch-examples-creating-alarms-scenario"></a>

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

本示例使用一系列 Node.js 模块在 CloudWatch 中创建警报。这些 Node.js 模块使用 SDK for JavaScript，通过 `AWS.CloudWatch` 客户端类的以下方法来创建警报：
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#describeAlarms-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#describeAlarms-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricAlarm-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricAlarm-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#deleteAlarms-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#deleteAlarms-property)

有关 CloudWatch 警报的更多信息，请参阅的《Amazon CloudWatch 用户指南》**中的[创建 Amazon CloudWatch 告警](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

## 先决条件任务
<a name="cloudwatch-examples-creating-alarms-prerequisites"></a>

要设置和运行此示例，您必须先完成以下任务：
+ 安装 Node.js。有关安装 Node.js 的更多信息，请参阅 [Node.js 网站](https://nodejs.org)。
+ 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息，请参阅[从共享凭证文件加载 Node.js 中的凭证](loading-node-credentials-shared.md)。

## 描述警报
<a name="cloudwatch-examples-creating-alarms-describing"></a>

创建文件名为 `cw_describealarms.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch，请创建 `AWS.CloudWatch` 服务对象。创建 JSON 对象，保存用于检索警报描述的参数，将返回的警报限制为具有状态 `INSUFFICIENT_DATA` 的警报。然后调用 `describeAlarms` 服务对象的 `AWS.CloudWatch` 方法。

```
// 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/cloudwatch/cw_describealarms.js)找到。

## 为 CloudWatch 指标创建警报
<a name="cloudwatch-examples-creating-alarms-putmetricalarm"></a>

创建文件名为 `cw_putmetricalarm.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch，请创建 `AWS.CloudWatch` 服务对象。针对基于指标创建警报所需的参数创建 JSON 对象，在本示例中指标为 Amazon EC2 实例的 CPU 利用率。其余参数设置为在指标超过 70% 的阈值时触发警报。然后调用 `describeAlarms` 服务对象的 `AWS.CloudWatch` 方法。

```
// 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/cloudwatch/cw_putmetricalarm.js)找到。

## 删除警报
<a name="cloudwatch-examples-creating-alarms-deleting"></a>

创建文件名为 `cw_deletealarms.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch，请创建 `AWS.CloudWatch` 服务对象。创建 JSON 对象以保存您要删除的警报的名称。然后调用 `deleteAlarms` 服务对象的 `AWS.CloudWatch` 方法。

```
// 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 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/cloudwatch/cw_deletealarms.js)找到。