

# Amazon S3 事件通知
<a name="EventNotifications"></a>

您可以使用 Amazon S3 事件通知特征在 S3 存储桶中发生某些事件时接收通知。要启用通知，请添加一个通知配置，该配置标识您希望 Amazon S3 发布的事件。确保它还标识您希望 Amazon S3 将通知发送到的目的地。您可以将此配置存储在与存储桶关联的*通知*子资源中。有关更多信息，请参阅 [通用存储桶配置选项](UsingBucket.md#bucket-config-options-intro)。Amazon S3 提供了一个 API，用于管理此子资源。

**重要**  
Amazon S3 事件通知设计为至少传送一次。通常，事件通知在几秒内传输，不过有时可能需要一分钟或更长时间。

## Amazon S3 事件通知概述
<a name="notification-how-to-overview"></a>

目前，Amazon S3 可以发布用于以下事件的通知：
+ 新的对象创建事件
+ 对象移除事件
+ 还原对象事件
+ 低冗余存储 (RRS) 对象丢失事件
+ 复制事件
+ S3 生命周期到期事件
+ S3 生命周期转换事件
+ S3 Intelligent-Tiering 自动归档事件
+ 对象标记事件
+ 对象 ACL PUT 事件

有关受支持事件类型的完整描述，请参阅 [SQS、SNS 和 Lambda 支持的事件类型](notification-how-to-event-types-and-destinations.md#supported-notification-event-types)。

Amazon S3 可以将事件通知消息发送到以下目标。您在通知配置中指定这些目标的 Amazon Resource Name (ARN) 值。
+ Amazon Simple Notification Service (Amazon SNS) 主题
+ Amazon Simple Queue Service (Amazon SQS) 队列
+ AWS Lambda 函数
+ Amazon EventBridge

有关更多信息，请参阅 [受支持的事件目标](notification-how-to-event-types-and-destinations.md#supported-notification-destinations)。

**注意**  
不支持将 Amazon Simple Queue Service FIFO（先进先出）队列作为 Amazon S3 事件通知目标。要向 Amazon SQS FIFO 队列发送 Amazon S3 事件的通知，您可以使用 Amazon EventBridge。有关更多信息，请参阅 [启用 Amazon EventBridge](enable-event-notifications-eventbridge.md)。

**警告**  
如果您的通知写入触发通知的同一存储桶，则可能会导致执行循环。例如，如果每当上传一个对象，存储桶就触发某个 Lambda 函数，而该函数又上传一个对象给存储桶，则该函数间接触发了自身。为避免这种情况，请使用两个存储桶，或将触发器配置为仅适用于传入对象所用的前缀。  
有关将 Amazon S3 通知与 AWS Lambda 结合使用的更多信息和示例，请参阅 *AWS Lambda 开发人员指南*中的[结合使用 AWS Lambda 和 Amazon S3](https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html)。

有关每个存储桶可以创建的事件通知配置数的更多信息，请参阅 *AWS 一般参考*中的 [Amazon S3 服务配额](https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3)。

有关事件通知的更多信息，请参阅以下部分：

**Topics**
+ [Amazon S3 事件通知概述](#notification-how-to-overview)
+ [事件通知类型和目标](notification-how-to-event-types-and-destinations.md)
+ [使用 Amazon SQS、Amazon SNS 和 Lambda](how-to-enable-disable-notification-intro.md)
+ [使用 EventBridge](EventBridge.md)