Postman测试Azure Service Bus SQL筛选器:消息未进入指定订阅求助
解决Azure Service Bus主题订阅SQL筛选器不生效的Postman配置建议
核心问题:筛选器针对的是消息属性而非消息体字段
你之前把MsgClass放在JSON消息体里,但Azure Service Bus的SQL筛选器默认只会识别消息的自定义属性,不会解析消息体内容,所以筛选规则无法匹配,消息只能进入无筛选的订阅。Postman发送消息的正确配置步骤
- 构造请求URL:
https://<你的命名空间>.servicebus.windows.net/<主题名称>/messages - 请求方法选择
POST - 配置请求头部:
- 添加
Authorization:填入生成的SAS令牌(格式为SharedAccessSignature sr=...) - 添加
Content-Type:application/json - 添加自定义属性:新增键为
MsgClass,值为Good的头部项
- 添加
- 消息体保留原有内容即可(
{"MsgClass":"Good","DetailMessage": "DetailMessage,DetailMessage,DetailMessage"}),体中的MsgClass不影响筛选逻辑
- 构造请求URL:
订阅筛选器的验证要点
- 确认订阅的SQL筛选器规则是
MsgClass = 'Good',注意必须使用单引号包裹字符串值,双引号不符合Service Bus的SQL语法要求 - 检查订阅是否存在其他冲突的筛选规则,比如同时设置了否定条件
- 确认订阅的SQL筛选器规则是
测试验证方式
发送消息后,分别查看目标订阅和无筛选订阅的消息计数,确认消息是否进入配置了筛选器的订阅;如果仍有问题,可以先发送仅包含MsgClass属性的极简消息,排除其他字段的干扰
内容的提问来源于stack exchange,提问作者Harly Chen
相关产品推荐
相关产品推荐

