创建对 Amazon Aurora 事件触发的规则
使用 Amazon EventBridge,您可以自动执行 AWS 服务和响应系统事件,例如应用程序可用性问题或资源更改。
教程:使用 Amazon EventBridge 记录数据库实例的状态更改
在本教程中,您可以创建 AWS Lambda 函数来记录 实例的状态更改。然后,您可以创建一项规则,只要现有 RDS 数据库实例的状态发生更改,便运行该函数。本教程假定您有一个小型的可以暂时关闭的正在运行的测试实例。
重要
请勿在正在运行的生产数据库实例上执行本教程。
步骤 1:创建 AWS Lambda 函数
创建 Lambda 函数以记录状态更改事件。在创建规则时,您可以指定此函数。
创建 Lambda 函数
打开 AWS Lambda 控制台,地址:https://console.aws.amazon.com/lambda/
。 -
如果您是首次接触 Lambda,您将看到欢迎页面。选择 Get Started Now (立即开始)。否则,选择创建函数。
-
选择 Author from scratch (从头创作)。
-
在 Create function (创建函数) 页面上,执行以下操作:
-
输入 Lambda 函数的名称和说明。例如,将函数命名为
RDSInstanceStateChange
。 -
在 Runtime(运行时)中,选择 Node.js 16x。
-
对于 Architecture(架构),选择 x86_64。
-
对于 Execution role(执行角色),请执行以下任一操作:
-
选择 Create a new role with basic Lambda permissions (创建具有基本 Lambda 权限的新角色)。
-
对于 Existing role(现有角色),选择 Use an existing role(使用现有角色)。选择要使用的角色。
-
-
选择创建函数。
-
-
在 RDSInstanceStateChange 页面上,请执行以下操作:
-
在 Code source (代码源) 中,请选择index.js。
-
在 index.js 窗格中,删除现有代码。
-
输入以下代码:
console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
-
选择 Deploy (部署)。
-
步骤 2:创建规则
创建一个规则,以便启动 Lambda 实例时运行 Amazon RDS 函数。
创建 EventBridge 规则
打开位于 https://console.aws.amazon.com/events/
的 Amazon EventBridge 控制台。 -
在导航窗格中,选择规则。
-
选择创建规则。
-
为规则输入名称和描述。例如,输入
RDSInstanceStateChangeRule
。 -
选择 Rule with an event pattern(具有事件模式的规则),然后选择 Next(下一步)。
-
对于事件源,选择AWS 事件或 EventBridge 合作伙伴事件。
-
向下滚动到 Event pattern(事件模式)部分。
-
对于事件源,选择 AWS 服务。
-
对于 AWS 服务,请选择关系数据库服务(RDS)。
-
对于 Event type (事件类型),请选择 RDS DB Instance Event (RDS 数据库实例事件)。
-
保留原定设置事件模式。然后选择下一步。
-
对于目标类型,选择AWS 服务。
-
对于 Select a target(选择目标),选择 Lambda function(Lambda 函数)。
-
对于 Function(函数),选择您创建的 Lambda 函数。然后选择下一步。
-
在 Configure tags(配置标签)中,选择 Next(下一步)。
-
查看您的规则中的步骤。然后,选择 Create rule(创建规则)。
步骤 3:测试规则
要测试您的规则,请关闭 RDS 数据库实例。等待几分钟,在实例关闭后,验证您的 Lambda 函数是否已调用。
通过停止一个数据库实例来测试您的规则
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
停止一个 RDS 数据库实例
打开位于 https://console.aws.amazon.com/events/
的 Amazon EventBridge 控制台。 -
在导航窗格中,选择 Rules (规则),再选择所创建规则的名称。
-
在规则详细信息中,选择监控。
随后您将被重定向至 Amazon CloudWatch 控制台。如果您未被重定向,请单击查看 CloudWatch 中的指标。
-
在 All metrics (所有指标)中,选择所创建规则的名称。
该图表表明规则已被调用。
-
在导航窗格中,选择 Log groups (日志组)。
-
选择 Lambda 函数 (/aws/lambda/
function-name
)的日志组的名称。 -
选择日志流的名称,以查看您启动的实例的函数提供的数据。您应该会看到接收的事件,类似以下内容:
{ "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:rds:us-east-1:111111111111:db:testdb" ], "detail": { "EventCategories": [ "notification" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb", "Date": "2021-03-19T19:34:09.293Z", "Message": "DB instance stopped", "SourceIdentifier": "testdb", "EventID": "RDS-EVENT-0087" } }
有关 JSON 格式的 RDS 事件的更多示例,请参阅Aurora 事件概述。
-
(可选)完成后,您可以打开 Amazon RDS 控制台并启动之前停止的实例。