Amazon CloudWatch Events
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

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

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

步骤 1:配置您的 AWS CloudTrail 跟踪

要将 S3 存储桶的数据事件记录到 AWS CloudTrail 和 CloudWatch Events,需创建一个跟踪。跟踪会捕获您账户中的 API 调用和相关事件,并将日志文件传输到您指定的 S3 存储桶。您可以更新现有跟踪或创建一个新跟踪。

创建跟踪

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

  2. 在导航窗格中,依次选择 Trails (跟踪)Create trail (创建跟踪)

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

  4. 对于 Data events,键入存储桶的名称和前缀 (可选)。对于每个跟踪,您可以添加最多 250 个 Amazon S3 对象。

    • 要记录存储桶中所有 Amazon S3 对象的数据事件,请指定一个 S3 存储桶和一个空前缀。当事件在该存储桶中的对象上发生时,跟踪将处理和记录事件。

    • 要记录特定 Amazon S3 对象的数据事件,请指定 S3 存储桶和对象前缀。当事件在该 存储桶中的对象上发生且对象以指定前缀开头时,跟踪将处理和记录事件。

  5. 对于每个资源,指定是否记录 Read-onlyWrite-onlyAll 事件。

  6. 对于 Storage location,创建或选择要用于日志文件存储的现有 S3 存储桶。

  7. 选择 Create

有关更多信息,请参阅 AWS CloudTrail User Guide 中的数据事件

步骤 2:创建 AWS Lambda 函数

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

创建 Lambda 函数

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

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

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

  4. Configure triggers 页面上,选择 Next

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

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

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

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

    4. 选择 Next

  6. Review 页面上,选择 Create function

步骤 3:创建规则

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

创建规则

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

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

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

    1. 选择 Event Pattern

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

    3. 依次选择 Simple Storage Service (S3)Object Level Operations

    4. 依次选择特定操作PutObject (放置对象)

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

    
                            事件选择器窗格
  4. 对于目标,依次选择添加目标Lambda 函数

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

  6. 选择 Configure details

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

  8. 选择 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 日志文件