Amazon RDS 事件通知概述 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon RDS 事件通知概述

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

符合事件订阅条件的 RDS 资源

您可以订阅以下资源的事件类别:

  • 数据库实例

  • 数据库快照

  • 数据库参数组

  • 数据库安全组

  • RDS 代理

  • 自定义引擎版本

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

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

订阅 Amazon RDS 事件通知的基本流程

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

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

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

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

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

  4. Amazon RDS 控制台更新 My Event Subscriptions(我的事件订阅)部分,其中包含您的订阅状态。

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

要了解使用 Amazon SNS 时的 Identity of Access Management,请查看 Amazon Simple Notification Service 开发人员指南中的 Amazon SNS 中的 Identity of Access Management

您可以使用处理 Amazon Lambda 来自数据库实例的事件通知。有关更多信息,请参阅 Amazon Lambda 开发人员指南中的将 Amazon Lambda 与 Amazon RDS 结合使用

发送 RDS 事件通知

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

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

重要

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

当 Amazon SNS 向已经订阅的 HTTP 或 HTTPS 端点发送一条通知时,发至端点的 POST 消息具有包含 JSON 格式文档的消息正文。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南 中的 Amazon SNS 消息和 JSON 格式

您可以将 SNS 配置为通过短信通知。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南中的移动文本消息 (SMS)

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

Amazon RDS 事件通知的计费

Amazon RDS 事件通知的计费是通过 Amazon SNS 执行的。Amazon SNS 费用在使用事件通知时适用。有关 Amazon SNS 计费的更多信息,请参阅 Amazon Simple Notification Service 定价

使用 Amazon EventBridge 的 Amazon RDS 事件的示例

以下示例说明了 JSON 格式的不同类型的 Amazon RDS 事件。有关向您说明如何以 JSON 格式捕获和查看事件的教程,请参阅教程:使用 Amazon EventBridge 记录数据库实例的状态更改

数据库实例事件的示例

以下是采用 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" } }

数据库参数组事件的示例

以下是采用 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" } }

数据库快照事件的示例

以下是采用 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" } }