本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用 EventBridge 记录 Amazon API 调用
本教程的创建规则部分已过时,并且即将更新。
您可以使用Amazon Lambda记录函数AmazonAPI 调用。例如,您可以创建规则登录任何操作Amazon EC2或者您可以将此规则限制为仅记录特定的 API 调用。
在本教程中,您将创建一个Amazon CloudTrail跟踪、Lambda 函数和EventBridge控制台。当 Amazon EC2 实例停止时,该规则会调用 Lambda 函数。
第 1 步:创建Amazon CloudTrail踪迹
如果您已设置了跟踪,请跳至步骤 2。
创建跟踪
打开CloudTrail控制台https://console.aws.amazon.com/cloudtrail/
. -
依次选择 Trails (跟踪)、Create trail (创建跟踪)。
-
对于 Trail name,键入跟踪的名称。
-
适用于存储位置,在创建新的 S3 存储桶.
-
适用于Amazon KMS化名键入 KMS 密钥的别名。
-
请选择 Next (下一步)。
-
请选择 Next (下一步)。
-
选择 Create trail (创建跟踪)。
第 2 步:创建Amazon Lambda功能
创建 Lambda 函数以记录 API 调用事件。
创建 Lambda 函数
打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/
。 -
选择 Create function (创建函数)。
-
选择 Author from scratch (从头开始创作)。
-
输入 Lambda 函数的名称和说明。例如,将函数命名为
LogEC2StopInstance
。 -
将其他选项保留为默认值,然后选择创建函数.
-
在存储库的代码双击函数页的选项卡,index.js.
-
使用以下代码替换现有代码。
'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2StopInstance'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
-
选择 Deploy(部署)。
第 3 步:创建规则
创建一个规则,以便停止 Amazon EC2 实例时运行步骤 2 中创建的 Lambda 函数。
创建 规则
打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/
. -
在导航窗格中,选择 Rules (规则)。
-
选择 Create rule (创建规则)。
-
为规则输入名称和描述。
-
对于定义模式,请执行以下操作:
-
选择 Event pattern (事件模式)。
-
选择 Pre-defined pattern by service (服务预定义的模式)。
-
对于服务提供商,选择 Amazon。
-
对于 Service Name (服务名称),请选择 EC2。
-
适用于Event type,选择Amazon通过 API 调用CloudTrail.
-
选择 Specific operations(s) (特定操作) 并在框中输入
StopInstances
。
-
-
对于 Select event bus (选择事件总线),选择 Amazon default event bus (亚马逊云科技默认事件总线)。当Amazon您账户中的服务发出一个事件,它会发送到您账户的默认事件总线。
-
对于目标,依次选择添加目标和 Lambda 函数。
-
对于函数,选择您创建的 Lambda 函数。
-
选择创建。
第 4 步:测试 规则
可以使用 Amazon EC2 控制台停止 Amazon EC2 实例来测试您的规则。等待几分钟,以便实例停止,然后检查您的Amazon Lambda上的指标CloudWatch控制台,以验证您的函数是否运行。
通过停止一个实例来测试您的规则
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
启动一个实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的启动您的实例。
-
停止实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的停止和启动实例。
打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/
. -
在导航窗格中,选择Rule选择所创建规则的名称,然后选择规则的指标.
-
要查看 Lambda 函数的输出,请执行以下操作:
打开 CloudWatch 控制台 (https://console.aws.amazon.com/cloudwatch/
)。 -
在导航窗格中,选择日志。
-
选择您的 Lambda 函数 (
/aws/lambda/
) 的日志组的名称。function-name
-
选择日志流的名称,以查看您停止的实例的函数提供的数据。
-
(可选)当您完成后,终止已停止的实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的终止实例。
第 5 步:确认成功
如 Lambda 你在CloudWatchLOG,您已成功完成本教程。如果活动不在你的CloudWatch日志中,通过验证规则是否成功创建开始故障排除,如果规则看起来正确,请验证 Lambda 函数的代码是否正确。
第 6 步:清除 资源
除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除Amazon您不再使用的资源,可防止您的产生不必要的费用Amazonaccount.
删除EventBridge规则
-
打开“规则” 页
的EventBridge控制台。 -
选择您创建的规则。
-
选择 Delete。
-
选择 Delete。
删除 Lambda 函数
-
打开 Lamba 控制台的 Functions(函数)页面
。 -
选择您创建的函数。
-
依次选择 Actions 和 Delete。
-
选择 Delete(删除)。
删除CloudTrail跟踪
-
打开跟踪页
的CloudTrail控制台。 -
选择您创建的跟踪。
-
选择 Delete。
-
选择 Delete。