SNS订阅过滤策略配置:按主题/消息体过滤指定邮箱通知
SNS订阅过滤策略问题解答
一、按SNS主题(Subject)过滤的正确配置方式
你之前的配置失效,核心问题是选错了过滤范围:Subject是SNS消息的元数据字段,不属于消息体(Message body)内容,所以选择「Message body」作为过滤范围时,策略无法匹配到Subject值。
正确配置要点:
- 在订阅的过滤策略设置中,不要选择「Message body」,需选择覆盖消息元数据的范围(比如AWS控制台中选择「Entire message」或「Message attributes and body」)。
- 过滤策略的JSON要使用
"Subject"作为键名(SNS对字段名大小写敏感),示例:
{ "Subject": [ "Test Subject 1" ] }
- 确保Python发布代码中
Subject参数正确传入对应值(当前代码里kwargs.get("subject")的写法是正确的)。
二、纯字符串SNS通知是否支持按消息体内容过滤?
支持,但要注意纯字符串消息的结构特性:
当设置MessageStructure='string'发布纯字符串消息时,SNS会将消息体内容映射到过滤策略上下文的"default"字段中,所以过滤消息体时必须用"default"作为键名。
示例:如果要接收消息体包含「Test Content」的通知,过滤策略可写为:
{ "default": [ "*Test Content*" ] }
(*是通配符,用于匹配包含指定内容的字符串;若需精确匹配,直接写目标字符串即可)
注意:纯字符串消息的过滤仅支持字符串匹配、通配符匹配等基础规则,无法解析JSON结构(因为消息体本身是纯文本)。
内容的提问来源于stack exchange,提问作者Vithursa Mahendrarajah
相关产品推荐
相关产品推荐

