Amazon SNS 消息筛选
默认情况下,Amazon SNS 主题订阅者会收到发布到该主题的每条消息。要仅接收一部分消息,订阅者必须将筛选策略分配给主题订阅。
筛选策略是一个简单的 JSON 对象,包含定义订阅者接收的消息的属性。当您将一条消息发布到某个主题时,Amazon SNS 会比较该消息属性与该主题的每个订阅的筛选策略中的属性。如果任何属性匹配,Amazon SNS 会将消息发送给订阅者。否则,Amazon SNS 会跳过订阅者而不向其发送消息。如果某个订阅没有筛选策略,则该订阅将接收发布到其主题的每条消息。
可以通过将消息筛选条件合并到主题订阅中来简化对 Amazon SNS 的使用。这允许您转移来自订阅者的消息筛选逻辑以及来自发布者的消息路由逻辑,从而无需通过为每个条件创建单独的主题来筛选消息。您可以使用单个主题,并通过属性来区分消息。每个订阅者只收到并处理其筛选策略所接受的消息。
例如,您可以使用单个主题来发布由零售网站上的事务生成的所有消息。要指示事务状态,可以为每条消息分配一个属性(例如 order_placed
、order_cancelled
或 order_declined
)。通过使用筛选策略来创建订阅,可以将每条消息路由到设计用于处理消息的事务状态的队列。
对于具有扇出系统通知消息的应用程序,Amazon SNS 主题提供了一个逻辑访问点,该访问点用作相关终端节点的通信渠道。对于应用程序对应用程序 (A2A) 通信中的异常,我们建议使用 Amazon SNS 订阅筛选策略。
有关更多信息,请参阅筛选发布到主题的消息