教程:使用以下方式记录 Amazon S3 对象级操作EventBridge - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

教程:使用以下方式记录 Amazon S3 对象级操作EventBridge

注意

本教程的创建规则部分已过时,并且即将更新。

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

在本教程中,您将创建CloudTrail跟踪,创建一个Amazon Lambda函数,然后创建规则中的EventBridge控制台调用该函数来响应 S3 数据事件。

第 1 步:配置Amazon CloudTrail踪迹

要将 S3 存储桶的数据事件记录到Amazon CloudTrail和EventBridge,首先要创建跟踪。一个踪迹在您账户中捕获 API 调用和相关事件,然后将日志文件传输到您指定的 S3 存储桶。您可以更新现有跟踪或创建一个新跟踪。

有关更多信息,请参阅 。数据事件中的Amazon CloudTrail用户指南.

创建跟踪

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

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

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

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

  5. 适用于Amazon KMS化名键入 KMS 密钥的别名。

  6. 请选择 Next (下一步)

  7. 适用于Event type,选择数据事件

  8. 适用于数据事件,执行下列操作之一:

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

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

  9. 对于每个资源,选择是否记录Read活动,写入事件,或两者兼而有。

  10. 请选择 Next (下一步)

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

第 2 步:创建Amazon Lambda功能

创建一个 Lambda 函数,以记录 S3 存储桶的数据事件。

创建 Lambda 函数

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

  2. 选择 Create function (创建函数)

  3. 选择 Author from scratch (从头开始创作)

  4. 输入 Lambda 函数的名称和说明。例如,将函数命名为 LogS3DataEvents

  5. 将其他选项保留为默认值并选择创建函数.

  6. 在存储库的代码双击函数页面的选项卡,双击index.js.

  7. 使用以下代码替换现有代码。

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogS3DataEvents'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. 选择 Deploy(部署)。

第 3 步:创建规则

创建一个规则以便运行您在步骤 2 中创建的 Lambda 函数。运行此规则是为了响应 Amazon S3 数据事件。

创建 规则

  1. 打开 AmazonEventBridge控制台在https://console.aws.amazon.com/events/.

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

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

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

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

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

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

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

    4. 对于服务名称,选择 Simple Storage Service (S3)

    5. 对于 Event type (事件类型),选择 Object Level Operations (对象级别操作)

    6. 选择特定操作PutObject.

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

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

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

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

  9. 选择创建

第 4 步:测试 规则

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

要查看您的 Lambda 函数的日志

  1. 打开 CloudWatch 控制台 (https://console.aws.amazon.com/cloudwatch/)。

  2. 在导航窗格中,选择日志

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

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

你也可以检查你的CloudTrail登录您为跟踪指定的 S3 存储桶。有关更多信息,请参阅 。获取并查看您的CloudTrail日志文件中的Amazon CloudTrail用户指南.

第 5 步:确认成功

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

第 6 步:清除 资源

除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除Amazon您不再使用的资源,可防止您的产生不必要的费用Amazonaccount.

删除EventBridge规则

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

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete

删除 Lambda 函数

  1. 打开 Lamba 控制台的 Functions(函数)页面

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择 Delete(删除)。

删除CloudTrail跟踪

  1. 打开跟踪页的CloudTrail控制台。

  2. 选择您创建的跟踪。

  3. 选择 Delete

  4. 选择 Delete