

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

# FIFO 主題的 Amazon SNS 訊息重複資料刪除
<a name="fifo-message-dedup"></a>

 Amazon SNS FIFO 主題和 Amazon SQS FIFO 佇列支援訊息重複資料刪除功能，只要符合下列條件，就能提供精確一次的訊息傳遞和處理：
+ 訂閱的 Amazon SQS FIFO 佇列存在，且具有允許 Amazon SNS 服務主體將訊息傳遞到佇列的權限。
+ Amazon SQS FIFO 佇列用戶會處理訊息，並在可見性逾時到期之前將訊息從佇列中刪除。
+ Amazon SNS 訂閱主題沒有[訊息篩選](fifo-message-filtering.md)。當您設定訊息篩選時，Amazon SNS FIFO 主題支援最多一次傳遞，因為訊息可以根據您的訂閱篩選政策篩選出來。
+ 沒有網路中斷會阻止確認訊息傳遞。

**注意**  
當主題屬性`FifoThroughputScope`設定為 時，訊息重複資料刪除會套用至整個 Amazon SNS FIFO 主題`Topic`。當主題屬性`FifoThroughputScope`設定為 時`MessageGroup`，訊息重複資料刪除會套用至每個個別[訊息群組](fifo-message-grouping.md)。

當您發布訊息到 Amazon SNS FIFO 主題，訊息必須包含重複資料刪除 ID。此 ID 包含在 Amazon SNS FIFO 主題傳遞至訂閱的 Amazon SQS FIFO 佇列的訊息中。

如果具有特定重複資料刪除 ID 的訊息成功發佈至 Amazon SNS FIFO 主題，則任何以相同重複資料刪除 ID 發佈的訊息都會在五分鐘的重複資料刪除間隔內接受，但不會傳送。Amazon SNS FIFO 主題會在主題屬性 設定的重複資料刪除範圍內繼續追蹤訊息重複資料刪除 ID`FifoThroughputScope`，即使訊息已交付至訂閱的端點。

如果確保每封已發布訊息的郵件本文都是唯一的，您可以針對 Amazon SNS FIFO 主題和訂閱的 Amazon SQS FIFO 佇列啟用內容型重複資料刪除功能。Amazon SNS 使用訊息主體產生唯一的雜湊值，用作每封訊息的重複資料刪除 ID，因此您在傳送每封訊息時不需要設定重複資料刪除 ID。

**注意**  
訊息屬性不包含在雜湊計算中。

為 Amazon SNS FIFO 主題啟用內容型重複資料刪除功能，並使用重複資料刪除 ID 發佈訊息時，發佈的重複資料刪除 ID 會覆寫產生的內容型重複資料刪除 ID。

在[汽車零件價格管理示範使用案例](fifo-example-use-case.md)中，公司必須為每次價格更新設定一個通用唯一的重複資料刪除 ID。這是因為即使批發和零售的訊息屬性不同，訊息內文也可以是相同的。不過，如果公司將業務類型 (批發或零售) 新增至訊息主體，並在產品 ID 和產品價格旁邊，則可以在 Amazon SNS FIFO 主題和訂閱的 Amazon SQS FIFO 佇列中啟用內容型重複。

![\[使用自動組件價格管理範例，在 Amazon SNS FIFO （先進先出） 主題環境中重複訊息刪除的運作方式。它顯示如何防止多次將發佈至 Amazon SNS FIFO 主題的重複訊息 (m1) 交付至訂閱者系統 （批發、零售和分析佇列）。此重複資料刪除可確保僅處理唯一訊息，提高不同訂閱者函數的訊息處理效率和準確性。\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/images/sns-fifo-dedup.png)


除了訊息排序和重複資料刪除之外，Amazon SNS FIFO 主題還支援具有 AWS KMS 金鑰的訊息伺服器端加密 (SSE)，以及透過具有 的 VPC 端點進行訊息隱私權 AWS PrivateLink。如需詳細資訊，請參閱[FIFO 主題的 Amazon SNS 訊息安全性](fifo-message-security.md)。