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

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

使用 Amazon SQS、Amazon SNS 和 Lambda

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

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

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

    注意

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

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

注意

如果您因為已刪除目的地而有多個失敗的事件通知,則嘗試刪除目的地時,您可能會收到無法驗證下列目的地組態的通知。您可以在 S3 主控台中同時刪除所有失敗的通知來解決此問題。

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

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

<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 偵測到特定類型的事件,即會發佈附事件資訊的訊息。如需詳細資訊,請參閱事件訊息結構

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