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

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

教程:日志Amazon使用 EventBridge 调用

您可以使用Amazon Lambda记录函数AmazonAPI 调用。例如,您可以创建一个规则将任何操作记录到Amazon EC2,也可以将此规则限制为仅记录特定的 API 调用。

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

第 1 步:创建Amazon CloudTrail跟踪

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

创建跟踪

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

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

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

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

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

  6. 选择 Next (下一步)

  7. 选择 Next (下一步)

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

第 2 步:创建Amazon Lambdafunction

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

创建 Lambda 函数

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

  2. 选择创建函数

  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 步:创建规则

创建一个规则,以便在停止 Amazon EC2 实例时运行您在步骤 2 中创建的 Lambda 函数。

创建 规则

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

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

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

  4. 为规则输入名称和描述。

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

    1. 选择 Event pattern

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

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

    4. 对于 Service Name (服务名称),请选择 EMR。​

    5. 适用于Event type中,选择Amazon通过 CloudTrail 进行 API 调用

    6. 选择 Specific operations(s) (特定操作) 并在框中输入 StopInstances

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

  7. 适用于目标中,选择添加目标Lambda 函数

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

  9. 选择创建

第 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. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

  5. 在导航窗格中,选择Rule,选择所创建规则的名称,然后选择规则的衡量指标

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

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

    2. 在导航窗格中,选择 Logs

    3. 选择 Lambda 函数 (/aws/lambda/function-name)。

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

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

第 5 步:确认成功

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

第 6 步:清除资源

现在,您可以删除为本教程创建的资源,除非您想要保留这些资源。通过删除Amazon您不再使用的资源,可防止您的Amazonaccount.

删除 EventBridge 规则

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

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete

删除 Lambda 函数

  1. 打开“函数” 页的 Lambda 控制台。

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择 Delete

删除 CloudTrail 跟踪

  1. 打开Trail (跟踪) 页面CloudTrail 控制台。

  2. 选择您创建的跟踪。

  3. 选择 Delete

  4. 选择 Delete