教程:日志Amazon使用的 API 调用 EventBridge - Mazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:日志Amazon使用的 API 调用 EventBridge

你可以使用亚马逊 EventBridge 规则响应 API 调用Amazon由记录的服务Amazon CloudTrail.

在本教程中,您将创建一个Amazon CloudTrail跟踪、一个 Lambda 函数和 EventBridge 控制台。当 Amazon EC2 实例停止时,该规则将调用 Lambda 函数。

第 1 步:创建Amazon CloudTrail踪迹

如果您已设置跟踪,请跳至步骤 2。

创建跟踪

  1. 打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/.

  2. 依次选择 Trails (跟踪)Create trail (创建跟踪)

  3. 对于 Trail name,键入跟踪的名称。

  4. 适用于存储位置,在创建新的 S3 存储桶.

  5. 适用于Amazon KMS化名中,键入 KMS 密钥的别名。

  6. 选择 Next(下一步)。

  7. 选择 Next(下一步)。

  8. 选择 Create trail (创建跟踪)

第 2 步:创建Amazon Lambda功能

创建 Lambda 函数以记录 API 调用事件。

创建 Lambda 函数

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 选择 Create function (创建函数)

  3. 选择 Author from scratch (从头开始创作)

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

  5. 将其他选项保留为默认值,然后选择创建函数.

  6. 在存储库的代码函数页的选项卡中,双击index.js.

  7. 使用以下代码替换现有代码。

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2StopInstance'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. 选择 Deploy(部署)。

第 3 步:创建规则

创建一个规则,以便停止 Lambda mazon EC2 实例时运行 Amazon EC2 函数。

创建 规则

  1. 打开 Amazon EventBridge 控制台https://console.aws.amazon.com/events/.

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

  3. 选择 Create rule (创建规则)

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

  5. 对于 Event bus(事件总线),请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择默认. 当您账户中的某个 Amazon 服务发出一个事件时,它始终会发送到您账户的默认事件总线。

  6. 对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。

  7. 选择 Next(下一步)。

  8. 适用于事件源,选择Amazon服务.

  9. 对于 Event pattern(事件模式),执行以下操作:

    1. 适用于事件源,选择EC2从下拉列表中,选择。

    2. 适用于Event type,选择AmazonAPI 调用 CloudTrail从下拉列表中,选择。

    3. 选择特定操作然后输入StopInstances.

  10. 选择 Next(下一步)。

  11. 适用于目标类型,选择Amazon服务.

  12. 适用于选择一个目标,选择Lambda 函数从下拉列表中,选择。

  13. 适用于函数,选择您在中创建的 Lambda 函数第 1 步:创建 Lambda 函数部分。在本例中,选择LogEC2StopInstance.

  14. 选择 Next(下一步)。

  15. 选择 Next(下一步)。

  16. 查看规则详细信息并选择 Create rule(创建规则)。

第 4 步:测试 规则

可以使用 Amazon EC2 控制台停止 Amazon EC2 实例来测试您的规则。等待几分钟,在该实例停止之后,请检查Amazon Lambda的指标 CloudWatch控制台,以验证您的函数是否已运行。

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

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 启动一个实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的启动您的实例

  3. 停止实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的停止和启动实例

  4. 要查看 Lambda 函数的输出,请执行以下操作:

    1. 打开 CloudWatch 控制台https://console.aws.amazon.com/cloudwatch/.

    2. 在导航窗格中,选择日志

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

    4. 选择日志流的名称,以查看您停止的实例的函数提供的数据。

  5. (可选)当您完成后,终止已停止的实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的终止实例

第 5 步:确认成功

如果你在中看到 Lambda 事件 CloudWatch 日志,您已成功完成本教程。如果该活动不在你的 CloudWatch 日志,通过验证规则是否成功创建来开始故障排除;如果规则看起来正确,请验证 Lambda 函数的代码是否正确。

第 6 步:清除 资源

除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除Amazon您不再使用的资源,可防止您的产生不必要的费用Amazonaccount.

删除 EventBridge 规则

  1. 打开“规则” 页面的 EventBridge 控制台。

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete

删除 Lambda 函数

  1. 打开 Lamba 控制台的 Functions page(函数页面)。

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择 Delete(删除)。

删除 CloudTrail 踪迹

  1. 打开跟踪的 CloudTrail 控制台。

  2. 选择您创建的跟踪。

  3. 选择 Delete

  4. 选择 Delete(删除)。