本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 偵測到特定類型的事件,即會發佈附事件資訊的訊息。如需詳細資訊,請參閱事件訊息結構。
如需有關設定事件通知的資訊,請參閱下列主題: