针对FIFO主题的消息过滤 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

针对FIFO主题的消息过滤

Amazon SNS FIFO 主题支持消息筛选。使用消息筛选可通过从发布者系统卸载消息路由逻辑,从订阅者系统卸载消息筛选逻辑来简化您的架构。

当您为 Amazon SQS FIFO 或标准队列订阅某个SNSFIFO主题时,您可以使用消息筛选来指定订阅者接收的消息子集,而不是全部消息。每个订阅者都可以将其自己的筛选策略设置为订阅属性。根据筛选策略的范围,筛选策略与入站消息属性或消息正文进行匹配。如果筛选策略匹配,则主题会向订阅者传输消息的副本。如果没有匹配项,则主题不会传输消息的副本。

汽车零件价格管理示例用例中,假设设置了以下亚马逊SNS筛选政策,并且筛选策略的范围为MessageBody

  • 对于批发队列,筛选策略 {"business":["wholesale"]} 匹配包含名为 business 的键且在一组值中具有 wholesale 的每条消息。在下图中,消息 m1 中的键之一是值为 wholesalebusiness。消息 m3 中的键之一是值为 ["wholesale,retail"]business。因此,m1m3 均匹配筛选策略的条件,并且这两条消息都会传输到批发队列中。

  • 对于零售队列,筛选策略 {"business":["retail"]} 匹配包含名为 business 的键且在一组值中具有 retail 的每条消息。在图中,消息 m2 中的键之一是值为 retailbusiness。消息 m3 中的键之一是值为 ["wholesale,retail"]business。因此,m2m3 均匹配筛选策略的条件,并且这两条消息都会传输到零售队列中。

  • 对于分析队列,我们希望 Amazon Athena 接收所有记录,因此不应用任何筛选策略。

对SNSFIFO主题进行邮件筛选。

SNSFIFO主题支持各种匹配运算符,包括属性字符串值、属性数值和属性键。有关更多信息,请参阅 Amazon SNS 邮件过滤

SNSFIFO主题不会向订阅的终端节点传送重复的消息。有关更多信息,请参阅 为FIFO主题删除重复消息