You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS SNS配置订阅过滤策略后Lambda无法接收消息咨询

SNS订阅过滤策略不生效的核心原因

任意一个问题都会导致消息被过滤、Lambda无法触发:

  • 字段名大小写不匹配
    过滤策略中写的嵌套字段路径为eventbody.status,但实际消息正文里的对应顶层字段是驼峰命名的eventBody(字母B大写)。SNS过滤规则对字段名、属性名严格区分大小写,路径拼写错误会直接导致匹配失败。
  • 字段匹配值与实际消息内容不符
    即使修正字段名大小写,你为status字段配置的匹配值是INVOICE,但测试消息里eventBody.status的实际值为CONCLUDED,不满足值匹配要求,消息会被直接拦截。
  • 未正确启用正文匹配能力(最高发的配置错误)
    SNS订阅过滤策略默认仅对发布消息时附带的Message Attributes(消息自定义属性)生效,不会自动解析JSON格式的消息正文做字段匹配。
    如果你没有在订阅配置中手动开启基于消息负载(Payload)的过滤功能,哪怕正文里的字段名、值完全符合规则,过滤策略也读取不到正文内容,会直接判定消息不匹配。如果你不想开启正文过滤,也可以在发布SNS消息时,把需要用于过滤的字段(aggregateType、eventType、目标status字段等)单独放到消息属性中传递,过滤策略即可正常匹配。

如果要匹配你提供的这条测试消息,开启正文过滤后,正确的过滤策略参考如下:

{
  "aggregateType": [
    "APPOINTMENT"
  ],
  "eventType": [
    "MODIFIED"
  ],
  "eventBody.status": [
    "CONCLUDED"
  ]
}

内容的提问来源于stack exchange,提问作者Martin Smola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:21:24