

# Amazon RDS 事件通知概述
<a name="USER_Events.overview"></a>

Amazon RDS 将事件分组为您可以订阅的类型，以便您在出现该类事件时收取通知。

**Topics**
+ [符合事件订阅条件的 RDS 资源](#USER_Events.overview.resources)
+ [订阅 Amazon RDS 事件通知的基本流程](#USER_Events.overview.process)
+ [发送 RDS 事件通知](#USER_Events.overview.subscriptions)
+ [Amazon RDS 事件通知的计费](#USER_Events.overview.billing)
+ [使用 Amazon EventBridge 的 Aurora 事件的示例](#events-examples)

## 符合事件订阅条件的 RDS 资源
<a name="USER_Events.overview.resources"></a>

对于 Amazon Aurora，事件在数据库集群和数据库实例级别发生。您可以订阅以下资源的事件类别：
+ 数据库实例
+ 数据库群集
+ 数据库集群快照
+ 数据库参数组
+ 数据库安全组
+ RDS 代理
+ 自定义引擎版本

例如，如果您订阅给定数据库实例的备份类别，那么无论何时出现影响该数据库实例的备份相关事件，您都将收到通知。如果您订阅对于数据库实例的配置更改类别，则会在数据库实例出现更改时收到通知。您还将在事件通知订阅更改时收到通知。

您可能需要创建多个不同的订阅。例如，您可能创建一个订阅以接收所有数据库实例的所有事件通知，并创建另一个订阅，其中仅包括数据库实例子集的严重事件。对于第二个订阅，请在筛选条件中指定一个或多个数据库实例。

## 订阅 Amazon RDS 事件通知的基本流程
<a name="USER_Events.overview.process"></a>

订阅 Amazon RDS 事件通知的流程如下：

1. 您使用 Amazon RDS 控制台、AWS CLI 或者 API 创建 Amazon RDS 事件通知订阅。

   Amazon RDS 使用 Amazon SNS 主题的 ARN 标识每个订阅。Amazon RDS 控制台在您创建订阅时为您创建 ARN。使用 Amazon SNS 控制台、AWS CLI 或 Amazon SNS API 创建 ARN。

1. Amazon RDS 发送批准电子邮件或者 SMS 消息给您在订阅时提交的地址。

1. 您可以通过选择所收到的通知中的链接来确认您的订阅。

1. Amazon RDS 控制台更新 **My Event Subscriptions**（我的事件订阅）部分，其中包含您的订阅状态。

1. Amazon RDS 开始将通知发送到您在创建订阅时提供的地址。

要了解使用 Amazon SNS 时的 Identity of Access Management，请查看 *Amazon Simple Notification Service 开发人员指南*中的 [Amazon SNS 中的 Identity of Access Management](https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html)。

您可以使用处理 AWS Lambda 来自数据库实例的事件通知。有关更多信息，请参阅 *AWS Lambda 开发人员指南*中的[将 AWS Lambda 与 Amazon RDS 结合使用](https://docs.aws.amazon.com/lambda/latest/dg/services-rds.html)。

## 发送 RDS 事件通知
<a name="USER_Events.overview.subscriptions"></a>

Amazon RDS 会将通知发送到您在创建订阅时提供的地址。通知可以包含消息属性，以提供有关消息的结构化元数据。有关消息属性的更多信息，请参阅[Aurora 的Amazon RDS 事件类别和事件消息](USER_Events.Messages.md)。

事件通知的传递可能需要长达五分钟。

**重要**  
Amazon RDS 不保证在事件流中发送的事件的顺序。事件顺序可能会发生变化。

当 Amazon SNS 向已经订阅的 HTTP 或 HTTPS 端点发送一条通知时，发至端点的 POST 消息具有包含 JSON 格式文档的消息正文。有关更多信息，请参阅 *Amazon Simple Notification Service 开发人员指南* 中的 [Amazon SNS 消息和 JSON 格式](https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html)。

您可以将 SNS 配置为通过短信通知。有关更多信息，请参阅 *Amazon Simple Notification Service 开发人员指南*中的[移动文本消息 (SMS)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html)。

要在不删除订阅的情况下关闭通知，请在 Amazon RDS 控制台中为**已启用**选择**否**。或者，可以使用 AWS CLI 或 Amazon RDS API 将 `Enabled` 参数设置为 `false`。

## Amazon RDS 事件通知的计费
<a name="USER_Events.overview.billing"></a>

Amazon RDS 事件通知的计费是通过 Amazon SNS 执行的。Amazon SNS 费用在使用事件通知时适用。有关 Amazon SNS 计费的更多信息，请参阅 [Amazon Simple Notification Service 定价](https://aws.amazon.com/sns/#pricing)。

## 使用 Amazon EventBridge 的 Aurora 事件的示例
<a name="events-examples"></a>

以下示例说明了 JSON 格式的不同类型的 Aurora 事件。有关向您说明如何以 JSON 格式捕获和查看事件的教程，请参阅[教程：使用 Amazon EventBridge 记录数据库实例的状态更改](rds-cloud-watch-events.md#log-rds-instance-state)。

**Topics**
+ [数据库集群事件的示例](#rds-cloudwatch-events.db-clusters)
+ [数据库参数组事件的示例](#rds-cloudwatch-events.db-parameter-groups)
+ [数据库集群快照事件的示例](#rds-cloudwatch-events.db-cluster-snapshots)

### 数据库集群事件的示例
<a name="rds-cloudwatch-events.db-clusters"></a>

以下是采用 JSON 格式的数据库集群事件的示例。该事件显示名为 `my-db-cluster` 的集群已修补。事件 ID 为 `RDS-EVENT-0173`。

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Cluster Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:cluster:my-db-cluster"
  ],
  "detail": {
    "EventCategories": [
      "notification"
    ],
    "SourceType": "CLUSTER",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-db-cluster",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Database cluster has been patched",
    "SourceIdentifier": "my-db-cluster",
    "EventID": "RDS-EVENT-0173"
  }
}
```

### 数据库参数组事件的示例
<a name="rds-cloudwatch-events.db-parameter-groups"></a>

以下是采用 JSON 格式的数据库参数组事件的示例。该事件显示参数 `time_zone` 已在参数组 `my-db-param-group` 中更新。事件 ID 为 RDS-EVENT-0037。

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Parameter Group Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:pg:my-db-param-group"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PARAM",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:pg:my-db-param-group",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Updated parameter time_zone to UTC with apply method immediate",
    "SourceIdentifier": "my-db-param-group",
    "EventID": "RDS-EVENT-0037"
  }
}
```

### 数据库集群快照事件的示例
<a name="rds-cloudwatch-events.db-cluster-snapshots"></a>

以下是采用 JSON 格式的数据库集群快照事件的示例。该事件显示名为 `my-db-cluster-snapshot` 的快照的创建情况。事件 ID 为 RDS-EVENT-0074。

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Cluster Snapshot Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:rds:my-db-cluster-snapshot"
  ],
  "detail": {
    "EventCategories": [
      "backup"
    ],
    "SourceType": "CLUSTER_SNAPSHOT",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:rds:my-db-cluster-snapshot",
    "Date": "2018-10-06T12:26:13.882Z",
    "SourceIdentifier": "my-db-cluster-snapshot",
    "Message": "Creating manual cluster snapshot",
    "EventID": "RDS-EVENT-0074"
  }
}
```