使用 Amazon SQS、Amazon SNS 和 Lambda - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon SQS、Amazon SNS 和 Lambda

啟用通知是儲存貯體層級的操作。您可以將通知組態資訊存放在與儲存貯體關聯的通知子資源中。建立或變更儲存貯體通知組態後,通常要等待 5 分鐘變更才會生效。首次啟用通知時,則會發生 s3:TestEvent。您可以使用下列任一方法來管理通知組態:

  • 使用 Amazon S3 主控台 – 您可以使用主控台 UI 在儲存貯體上設定通知組態,無需編寫任何程式碼。如需詳細資訊,請參閱 使用 Amazon S3 主控台啟用和設定事件通知

  • 以程式設計方式使用 AWS 開發套件 — 在內部,主控台和開發套件都會呼叫 Amazon S3 REST API 來管理與儲存貯體關聯的通知子資源。如需使用 AWS SDK 的通知組態範例,請參閱 演練:設定儲存貯體的通知 (SNS 主題或 SQS 佇列)

    注意

    您還可以直接透過程式碼進行 Amazon S3 REST API 呼叫。但這麼做會很麻煩,因為這需要編寫程式碼來對您的請求進行身分驗證。

無論您使用何種方法,Amazon S3 都會將通知組態以 XML 的形式存放在與儲存貯體相關聯的通知子資源中。如需儲存貯體子資源的相關資訊,請參閱 儲存貯體組態選項

以程式設計方式設定事件通知

根據預設,所有事件類型都不會啟用通知。因此,通知子資源一開始存放的是空白組態。

<NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </NotificationConfiguration>

若要啟用特定類型事件的通知,請以合適的組態取代 XML,識別 Amazon S3 所要發佈的事件類型,以及所需的事件發佈目標。為每個目標新增對應的 XML 組態。

將事件訊息發佈至 SQS 佇列

若要將 SQS 佇列設定為一或多種事件類型的通知目標,請新增 QueueConfiguration

<NotificationConfiguration> <QueueConfiguration> <Id>optional-id-string</Id> <Queue>sqs-queue-arn</Queue> <Event>event-type</Event> <Event>event-type</Event> ... </QueueConfiguration> ... </NotificationConfiguration>
將事件訊息發佈至 SNS 主題

若要將 SNS 主題設定為特定事件類型的通知目標,請新增 TopicConfiguration

<NotificationConfiguration> <TopicConfiguration> <Id>optional-id-string</Id> <Topic>sns-topic-arn</Topic> <Event>event-type</Event> <Event>event-type</Event> ... </TopicConfiguration> ... </NotificationConfiguration>
叫用 AWS Lambda 函數並提供事件訊息作為引數

若要將 Lambda 函數設定為特定事件類型的通知目的地,請新增 CloudFunctionConfiguration

<NotificationConfiguration> <CloudFunctionConfiguration>    <Id>optional-id-string</Id>    <CloudFunction>cloud-function-arn</CloudFunction>         <Event>event-type</Event>       <Event>event-type</Event>       ...   </CloudFunctionConfiguration> ... </NotificationConfiguration>
移除儲存貯體上設定的所有通知

若要移除儲存貯體上設定的所有通知,請在通知子資源中儲存空白的 <NotificationConfiguration/> 元素。

當 Amazon S3 偵測到特定類型的事件,即會發佈附事件資訊的訊息。如需詳細資訊,請參閱 事件訊息結構

如需有關設定事件通知的資訊,請參閱下列主題: