本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用 EventBridge 记录 Amazon EC2 实例的状态
您可以创建 Amazon Lambda 函数来记录 Amazon EC2 实例的状态更改。您可以创建一条规则,以便在状态发生任何转换时或者在状态转换为一个或多个相关状态时运行您的 Lambda 函数。在此教程中,您将记录任何新实例的启动。
步骤 1:创建 Amazon Lambda 函数
创建 Lambda 函数以记录状态更改事件。在步骤 2 中创建规则时,您可以指定此函数。
创建 Lambda 函数
通过 https://console.aws.amazon.com/lambda/
打开 Amazon Lambda 控制台。 -
选择 Create function (创建函数)。
-
选择从头开始创作。
-
输入 Lambda 函数的名称和说明。例如,将函数命名为
LogEC2InstanceStateChange
。 -
将其余选项保留为默认值,然后选择创建函数。
-
在函数页面的代码选项卡上,双击 index.js。
-
使用以下代码替换现有代码。
'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2InstanceStateChange'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
-
选择部署。
步骤 2:创建规则
创建规则,运行您在步骤 1 中创建的 Lambda 函数。该规则将在您启动 Amazon EC2 实例时运行。
创建 EventBridge 规则
打开位于 https://console.aws.amazon.com/events/
的 Amazon EventBridge 控制台。 -
在导航窗格中,选择规则。
-
选择创建规则。
-
为规则输入名称和描述。例如,将规则命名为
TestRule
-
对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择默认。当您账户中的某个 Amazon 服务发出一个事件时,它始终会发送到您账户的默认事件总线。
-
对于规则类型,选择具有事件模式的规则。
-
选择下一步。
-
对于事件源,选择Amazon 服务。
-
对于 Event pattern(事件模式),执行以下操作:
-
对于事件源,请从下拉列表中选择 EC2。
-
对于事件类型,请从下拉列表中选择 EC2 实例状态更改通知。
-
选择特定状态,然后从下拉列表中选择运行。
-
选择任何实例
-
-
选择下一步。
-
对于目标类型,选择Amazon 服务。
-
对于选择目标,从下拉列表中选择 Lambda 函数。
-
在函数中,选择您在步骤 1:创建 Lambda 函数部分创建的 Lambda 函数。在此示例中,选择
LogEC2InstanceStateChange
。 -
选择下一步。
-
选择下一步。
-
查看规则详细信息并选择创建规则。
步骤 3:测试规则
可以使用 Amazon EC2 控制台停止 Amazon EC2 实例来测试您的规则。等待几分钟以便实例停止,然后检查 CloudWatch 控制台中的 Amazon Lambda 指标,验证您的函数是否运行。
通过停止一个实例来测试您的规则
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
启动一个实例。有关更多信息,请参阅《Amazon EC2 用户指南》中的启动实例。
-
停止实例。有关更多信息,请参阅《Amazon EC2 用户指南》中的停止和启动实例。
-
要查看 Lambda 函数的输出,请执行以下操作:
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,选择日志。
-
选择您的 Lambda 函数 (
/aws/lambda/
) 的日志组的名称。function-name
-
选择日志流的名称,以查看您停止的实例的函数提供的数据。
-
(可选)当您完成后,终止已停止的实例。有关更多信息,请参阅《Amazon EC2 用户指南》中的终止实例。
步骤 4:确认成功
如果您在 CloudWatch 日志中看到 Lambda 事件,说明您已成功完成本教程。如果您的 CloudWatch 日志中没有该事件,请开始故障排除,首先验证规则是否成功创建,如果规则看起来正确,再验证 Lambda 函数的代码是否正确。
步骤 5:清理资源
除非您想要保留为本教程创建的资源,否则可立即将其删除。请删除您不再使用的 Amazon 资源,这样可防止您的 Amazon 账户产生不必要的费用。
删除 EventBridge 规则
-
在 EventBridge 控制台中打开规则页面
。 -
选择您创建的规则。
-
选择 Delete(删除)。
-
选择 Delete(删除)。
删除 Lambda 函数
-
打开 Lamba 控制台的函数页面
。 -
选择您创建的函数。
-
依次选择 Actions 和 Delete。
-
选择 Delete(删除)。