本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SNS FIFO 主題支援訊息篩選。透過從發佈者系統卸載訊息路由邏輯,以及從訂閱者系統卸載訊息篩選邏輯,藉此簡化您的架構。
當您將 Amazon SQS FIFO 或標準佇列訂閱至 SNS FIFO 主題時,可以使用訊息篩選來指定訂閱用戶接收訊息子集,而不是所有訊息。每個訂閱者都可以將自己的篩選政策設定為訂閱屬性。根據篩選政策範圍,篩選政策會與傳入訊息屬性或訊息內文相符。如果篩選政策符合,則主題會將郵件的副本傳送給訂閱者。如果沒有相符項目,主題就不會傳送訊息的副本。
在汽車零件價格管理範例使用案例中,假設已設定下列 Amazon SNS 篩選政策,且篩選政策範圍為 MessageBody
:
-
對於批發佇列,篩選政策
{"business":["wholesale"]}
將每個具有名為business
和wholesale
索引鍵的訊息配對在一組值中。在下圖中,訊息 m1 裡其中一個索引鍵是值為wholesale
的business
。訊息 m3 裡其中一個索引鍵是值為["wholesale,retail"]
的business
。因此,兩者皆是 m1 和 m3 符合篩選政策的準則,並且兩個訊息都會傳遞至批發佇列。 -
對於零售佇列,篩選政策
{"business":["retail"]}
將每個具有名為business
和retail
索引鍵的訊息配對在一組值中。在圖表中,訊息 m2 裡其中一個索引鍵是值為retail
的business
。訊息 m3 裡其中一個索引鍵是值為["wholesale,retail"]
的business
。因此,兩者皆是 m2 和 m3 符合篩選政策的準則,而且兩個訊息都會傳遞至零售佇列。 -
對於分析佇列,我們希望 Amazon Athena 能夠接收所有記錄,因此不會套用篩選政策。

SNS FIFO 主題支援各種相符運算子,包括屬性字串值、屬性數值和屬性索引鍵。如需詳細資訊,請參閱Amazon SNS 訊息篩選。
SNS FIFO 主題不會將重複的訊息傳遞至訂閱的端點。如需詳細資訊,請參閱FIFO 主題的 Amazon SNS 訊息重複資料刪除。