Amazon CloudWatch 事件
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

教程:使用 CloudWatch Events 记录 AWS API 调用

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

先决条件

在您可以匹配这些事件之前,您必须使用 AWS CloudTrail 设置跟踪。如果您没有跟踪,请完成以下步骤。

创建跟踪

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 依次选择 TrailsAdd new trail

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

  4. 对于 S3 bucket,键入新存储桶的名称,CloudTrail 将在其中传输日志。

  5. 选择 Create

步骤 1:创建 AWS Lambda 函数

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

创建 Lambda 函数

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

  2. 如果您是首次使用 Lambda,则会看到一个欢迎页面;请选择 Get Started Now;否则,请选择 Create a Lambda function

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

  4. Configure triggers 页面上,选择 Next

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

    1. 键入 Lambda 函数的名称和说明。(例如,将函数命名为“LogEC2StopInstance”。)

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

      Copy
      'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2StopInstance'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
    3. 对于 Role,选择 Choose an existing role,然后从 Existing role 中选择您的基本执行角色。否则,创建新的基本执行角色。

    4. 选择 Next

  6. Review 页面上,选择 Create function

步骤 2:创建规则

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

创建规则

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

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

  3. 选择 。

  4. 对于 Event source,执行以下操作:

    1. 选择 Event Pattern

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

    3. 选择 EC2,然后选择 AWS API Call via CloudTrail

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

  5. 对于 Targets,选择 Add target,然后选择 Lambda function

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

  7. 选择 Configure details

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

  9. 选择 Create rule

步骤 3:测试规则

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

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

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

  4. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

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

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

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

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

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

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