

# 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 的 Amazon RDS 事件的示例](#events-examples)

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

您可以订阅以下资源的事件类别：
+ 数据库实例
+ 数据库快照
+ 数据库参数组
+ 数据库安全组
+ 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 会将通知发送到您在创建订阅时提供的地址。通知可以包含消息属性，以提供有关消息的结构化元数据。有关消息属性的更多信息，请参阅[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 的 Amazon RDS 事件的示例
<a name="events-examples"></a>

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

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

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

以下是采用 JSON 格式的数据库实例事件的示例。该事件显示，RDS 为名为 `my-db-instance` 的实例执行了多可用区故障转移。事件 ID 为 RDS-EVENT-0049。

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Instance Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:db:my-db-instance"
  ],
  "detail": {
    "EventCategories": [
      "failover"
    ],
    "SourceType": "DB_INSTANCE",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "A Multi-AZ failover has completed.",
    "SourceIdentifier": "my-db-instance",
    "EventID": "RDS-EVENT-0049"
  }
}
```

### 数据库参数组事件的示例
<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-snapshots"></a>

以下是采用 JSON 格式的数据库快照事件的示例。该事件显示删除名 `my-db-snapshot` 为的快照。事件 ID 为 RDS-EVENT-0041。

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB 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:snapshot:rds:my-db-snapshot"
  ],
  "detail": {
    "EventCategories": [
      "deletion"
    ],
    "SourceType": "SNAPSHOT",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:snapshot:rds:my-db-snapshot",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Deleted manual snapshot",
    "SourceIdentifier": "my-db-snapshot",
    "EventID": "RDS-EVENT-0041"
  }
}
```