创建对 Amazon Aurora 事件触发的规则 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建对 Amazon Aurora 事件触发的规则

使用 Amazon CloudWatch Events 和 Amazon EventBridge,您可以自动执行 Amazon 服务并响应系统事件,例如应用程序可用性问题或资源更改。

教程:使用 EventBridge 记录 实例的状态

您可以创建 Amazon Lambda 函数来记录 实例的状态更改。您可以选择创建一个规则,以便在状态发生任何转换时或者在状态转换为一个或多个相关状态时运行您前面创建的函数。

在本教程中,您将记录现有 RDS 数据库实例的任何状态更改。本教程假定您有一个小型的可以暂时关闭的正在运行的测试实例。

重要

请勿在正在运行的生产实例上执行本教程。

步骤 1:创建 Amazon Lambda 函数

创建 Lambda 函数以记录状态更改事件。在创建规则时,您可以指定此函数。

创建 Lambda 函数

  1. 通过以下网址打开 Amazon Lambda 控制台:https://console.amazonaws.cn/lambda/

  2. 如果您是首次接触 Lambda,您将看到欢迎页面。选择 Get Started Now。否则,选择创建函数

  3. 选择 Author from scratch

  4. Create function (创建函数) 页面上,执行以下操作:

    1. 输入 Lambda 函数的名称和说明。例如,将函数命名为 RDSInstanceStateChange

    2. 对于 Runtime (运行时),请选择 Node.js 14x

    3. Execution Role (执行角色) 中,选择 Create a new role with basic Lambda permissions (创建具有基本 Lambda 权限的新角色)。对于现有角色,选择您的基本执行角色。否则,创建基本执行角色。

    4. 选择创建函数

  5. RDSInstanceStateChange 页面上,请执行以下操作:

    1. Code source (代码源) 中,请选择index.js

    2. 右键单击 index.js,然后选择 Open (打开)

    3. index.js 窗格中,删除现有代码。

    4. 输入以下代码:

      console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
    5. 选择 Deploy (部署)

步骤 2:创建规则

创建一个规则,以便启动 Lambda 实例时运行 Amazon RDS 函数。

创建 EventBridge 规则

  1. 通过以下网址打开 Amazon EventBridge 控制台:https://console.amazonaws.cn/events/

  2. 在导航窗格中,选择 Rules (规则)

  3. 选择 Create rule

  4. 为规则输入名称和描述。例如,输入 RDSInstanceStateChangeRule

  5. 对于 Define pattern (定义模式),请执行以下操作:

    1. 选择 Event pattern

    2. 选择 Pre-defined pattern by service (服务预定义的模式)

    3. 对于 Service provider (服务提供商),选择 Amazon

    4. 对于服务名称,请选择 Relational Database Service (RDS)

    5. 对于 Event type (事件类型),请选择 RDS DB Instance Event (RDS 数据库实例事件)

  6. 对于 Select event bus (选择事件总线),选择 Amazon default event bus (Amazon 默认事件总线)。当您账户中的某个 Amazon 服务发出一个事件时,它始终会发送到您账户的默认事件总线。

  7. 对于 Target (目标),选择 Lambda function (Lambda 函数)

  8. 对于函数,选择您创建的 Lambda 函数。

  9. 选择 Create

步骤 3:测试规则

要测试您的规则,请关闭 RDS 数据库实例。等待几分钟,在实例关闭后,验证您的 Lambda 函数是否已调用。

通过停止一个数据库实例来测试您的规则

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 停止一个 RDS 数据库实例

  3. 通过以下网址打开 Amazon EventBridge 控制台:https://console.amazonaws.cn/events/

  4. 在导航窗格中,选择 Rules (规则),再选择所创建规则的名称。

  5. Rule details (规则详细信息)中,请选择 Metrics for the rule (规则的指标)

    随后您将被重定向至 Amazon CloudWatch 控制台。

  6. All metrics (所有指标)中,选择所创建规则的名称。

    该图表表明规则已被调用。

  7. 在导航窗格中,选择 Log groups (日志组)

  8. 选择 Lambda 函数 (/aws/lambda/function-name)的日志组的名称。

  9. 选择日志流的名称,以查看您启动的实例的函数提供的数据。您应该会看到接收的事件,类似以下内容:

    { "version": "0", "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "111111111111", "time": "2021-03-19T19:34:09Z", "region": "us-east-1", "resources": [ "arn:aws-cn:rds:us-east-1:111111111111:db:testdb" ], "detail": { "EventCategories": [ "notification" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws-cn:rds:us-east-1:111111111111:db:testdb", "Date": "2021-03-19T19:34:09.293Z", "Message": "DB instance stopped", "SourceIdentifier": "testdb", "EventID": "RDS-EVENT-0087" } }
  10. (可选)完成后,您可以打开 Amazon RDS 控制台并启动之前停止的实例。