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

SNS向SQS订阅传递消息时按特定事件过滤的问题求助

问题排查与解决方案

核心问题:过滤策略字段路径错误

你当前的过滤策略使用顶层Message字段作为匹配键,但S3发送到SNS的消息体是嵌套结构,事件类型实际存在于Records[*].eventName字段中——该字段值是ObjectCreated:Put、ObjectRemoved:Delete这类完整事件名,而非单纯的ObjectCreated字符串,这是过滤失效的直接原因。

正确的过滤策略配置

ObjectCreated队列的过滤策略(消息体范围)

{
  "Records": [
    {
      "eventName": [{"prefix": "ObjectCreated:"}]
    }
  ]
}

ObjectRemoved队列的过滤策略(消息体范围)

{
  "Records": [
    {
      "eventName": [{"prefix": "ObjectRemoved:"}]
    }
  ]
}

关键配置验证点

  • 确认SQS订阅SNS Topic时,过滤范围选择“消息体”(我们匹配的是消息体内部的嵌套字段)。
  • 检查JSON语法:确保策略格式无语法错误,比如括号、逗号是否正确闭合。
  • 手动测试:上传文件到S3验证ObjectCreated队列是否收消息,删除文件验证ObjectRemoved队列是否收消息。

补充说明

SNS消息体过滤支持prefix(前缀匹配)、suffix(后缀匹配)、equals(精确匹配)等操作符,这里用prefix是因为ObjectCreated类事件包含Put、Post、Copy等细分类型,前缀匹配可以覆盖所有同类别事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:35:02