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

AWS SNS订阅event过滤策略失效,如何配置拒绝open事件?

问题解决:SNS订阅过滤策略不生效的修正方案

问题根源

你的过滤策略配置错误地将anything-but规则以JSON字符串形式定义,CloudFormation会将其识别为普通字符串值,而非SNS要求的过滤规则对象,导致过滤逻辑无法被正确解析执行。

修改后的YAML配置

SqsToSnsSubscription:
  Type: AWS::SNS::Subscription 
  Properties:  
    Endpoint: !GetAtt eventCollectorSQS.Arn
    Protocol: sqs
    RawMessageDelivery: true
    TopicArn: 
      Fn::ImportValue: 
        !Sub '${SNSStackName}-ourapp-eventsns' 
    FilterPolicyScope: MessageBody 
    FilterPolicy:
      ApplicationKey: 
        - !Sub ${ApplicationKey}
      event: 
        anything-but:
          - "open"

关键修改说明

  1. 过滤规则格式修正:将原来转义的JSON字符串'{"anything-but": ["open"]}'替换为YAML原生的对象结构,让CloudFormation生成符合SNS规范的过滤策略。
  2. 保留正确的作用域:FilterPolicyScope: MessageBody无需修改,该配置指定SNS基于消息体(业务JSON内容)中的字段进行过滤。

额外验证点

确保上游发布到SNS的消息体是原生JSON对象(而非转义后的JSON字符串),因为RawMessageDelivery: true会直接传递原始消息体,只有原生JSON对象才能让SNS正确解析其中的event字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:05:37