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

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

教程:日志Amazon使用云监视事件的 API 调用

注意

Amazon EventBridge 是管理事件的首选方式。CloudWatch Events 和 EventBridge 是相同的底层服务和 API,但 EventBridge 提供了更多功能。您在 CloudWatch 或 EventBridge 中所作的更改将显示在每个控制台中。有关更多信息,请参阅 。Amazon EventBridge

可以使用简单 Amazon Lambda 函数来记录每个 Amazon API 调用。例如,可以创建一个规则来记录 Amazon EC2 中的任何操作,也可以将此规则限制为仅记录特定的 API 调用。在此教程中,每当 Amazon EC2 实例停止时就进行记录。

Prerequisite

必须使用 Amazon CloudTrail 设置跟踪才能匹配这些事件。如果您没有跟踪,请完成以下步骤。

创建跟踪

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

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

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

  4. 适用于存储位置, 在创建新的 S3 存储桶键入 CloudTrail 应将日志传输到其中的新存储桶的名称。

  5. 选择 Create (创建)

第 1 步:创建Amazon Lambda函数

创建 Lambda 函数以记录 API 调用事件。在创建规则时指定此函数。

创建 Lambda 函数

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

  2. 如果您是首次使用 Lambda,您将看到欢迎页面。选择 Get Started Now。否则,请选择 Create a Lambda function (创建 Lambda 函数)

  3. 选择蓝图页面上,为筛选条件键入 hello,然后选择 hello-world 蓝图。

  4. Configure triggers 页面上,选择 Next

  5. Configure function 页面上,执行以下操作:

    1. 键入 Lambda 函数的名称和描述。例如,将函数命名为“LogEC2StopInstance”。

    2. 编辑 Lambda 函数的示例代码。例如:

      'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2StopInstance'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
    3. 对于角色,选择选择现有角色。对于现有角色,选择您的基本执行角色。否则,创建新的基本执行角色。

    4. 选择 Next

  6. Review 页面上,选择 Create function

第 2 步:创建规则

创建一个规则,以便每当您停止 Amazon EC2 实例时,就运行您的 Lambda 函数。

创建 规则

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

  2. 在导航窗格中,选择 EventsCreate rule

  3. 对于 Event source (事件源),执行以下操作:

    1. 选择 Event Pattern (事件模式)

    2. 选择 Build event pattern to match events by service

    3. 选择EC2Amazon通过 CloudTrail 进行 API 调用

    4. 选择 Specific operation(s),然后在下面的框中键入 StopInstances

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

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

  6. 选择 Configure details

  7. 对于 Rule definition,键入规则的名称和描述。

  8. 选择 Create rule

第 3 步:测试 规则

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

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

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

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

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

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

  5. 在导航窗格中,选择 Events,再选择所创建规则的名称,然后选择 Show metrics for the rule

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

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

    2. 选择您的 Lambda 函数 (/aws/lambda/函数名)。

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

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