FIFO 主题的消息筛选 - Amazon Simple Notification Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

FIFO 主题的消息筛选

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

在为 Amazon SQS FIFO 队列订阅 SNS FIFO 主题时,您可以使用消息筛选来指定订阅者接收一部分消息,而不是全部消息。每个订阅者都可以将自己的筛选策略设置为订阅属性。如果筛选策略与传入消息的属性匹配,则主题会将消息副本发送给订阅者。如果没有匹配项,则该主题不会传输消息的副本。

自动分段价格管理示例使用案例中,假定设置了以下 Amazon SNS 筛选策略:

  • 对于批发队列,筛选策略 {"business":["wholesale"]} 将匹配每个消息,其属性名为 "business",值集中为 "wholesale"。在下图中,消息 m1 中的属性为 String,值为 "wholesale"。 消息 m3 中的属性为 String.Array,值为 "wholesale,retail"。 因此,m1m3 都与筛选策略的条件匹配,且这两条消息都传送到批发队列。

  • 对于零售队列,筛选策略 {"business":["retail"]} 将匹配每个消息,其属性名为 "business",值集中为 "retail"。在图中,消息 m2 中的属性为 String,值为 "retail"。 消息 m3 中的属性为 String.Array,值为 "wholesale,retail"。 因此,m2m3 均与筛选策略的标准匹配,并且这两条消息将传输到零售队列。

下图显示了使用这些筛选策略进行消息收发筛选的效果。


        SNS FIFO 主题的消息筛选。

SNS FIFO 主题支持各种匹配的运算符,包括属性字符串值、属性数值和属性键。有关更多信息,请参阅Amazon SNS 消息筛选

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