Amazon CloudWatch 事件
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

教程:使用 CloudWatch Events 记录 S3 对象级别操作

您可以在 Amazon S3 存储桶上记录对象级别 API 操作。在 Amazon CloudWatch Events 可以匹配这些事件之前,您必须使用 AWS CloudTrail 设置配置为接收这些事件的跟踪。

步骤 1:创建事件选择器

为了将 S3 存储桶的数据事件记录到 CloudTrail 和 CloudWatch Events,应配置一个事件选择器。您可以将事件选择器添加到现有跟踪,也可以创建一个跟踪,然后添加选择器。有关更多信息,请参阅 AWS CloudTrail User Guide 中的数据事件

创建跟踪

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

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

  3. (可选) 如果没有跟踪,您可以创建一个。

    1. 选择 Add new trail

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

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

    4. 选择 Create

  4. 选择跟踪的名称。

  5. 选择 Event selectors (Optional) 旁边的铅笔图标。

  6. 对于 Data events,选择一个或多个要监控的 S3 存储桶。若要仅记录存储桶的数据事件,请为 Management events 选择 No

  7. 选择 Save

步骤 2:创建 Lambda 函数

创建一个 Lambda 函数,以记录 S3 存储桶的数据事件。在创建规则时,您将指定此函数。

创建 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 函数的名称和说明。(例如,将函数命名为“LogS3DataEvents”。)

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

      Copy
      'use strict'; exports.handler = (event, context, callback) => { console.log('LogS3DataEvents'); 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

步骤 3:创建规则

创建一个规则以便运行您的 Lambda 函数来响应 S3 数据事件。

创建规则

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

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

  3. 选择 Create rule

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

    1. 选择 Event Pattern

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

    3. 选择 Simple Storage Service (S3),然后选择 Object Level Operations

    4. 选择 Specific operation(s),然后选择 PutObject

    5. 默认情况下,该规则与区域中所有存储桶的数据事件匹配。若要匹配特定存储桶的数据事件,请选择 Specify bucket(s) by name,然后指定一个或多个存储桶。

     事件选择器窗格
  5. 对于 Targets,选择 Add target,然后选择 Lambda function

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

  7. 选择 Configure details

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

  9. 选择 Create rule

步骤 4:测试规则

为了测试规则,将一个对象置于 S3 存储桶中。您可以验证您的 Lambda 函数是否已调用。

查看 Lambda 函数的日志

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

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

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

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

您还可以在 S3 存储桶中检查您为跟踪指定的 CloudTrail 日志的内容。有关更多信息,请参阅 AWS CloudTrail User Guide 中的获取并查看您的 CloudTrail 日志文件