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

AWS SNS订阅突发FilterPolicyScope必填错误:未配置该参数却报错

AWS SNS 订阅突然要求必填 FilterPolicyScope 问题排查

之前配置AWS SNS订阅时,未设置FilterPolicyScope(根据官方文档该参数非必填,默认值为MessageAttributes),配置一直正常运行且未做任何变更,但现在部署时突然报错,提示该参数为必填项且值为null无效。

报错信息

An error occurred: DynamoConsumerSubscription - Invalid parameter: FilterPolicyScope: Invalid value [null]. Please use either MessageBody or MessageAttributes (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter; Request ID: d374f542-3f41-5626-a65f-a9cb71c4277b; Proxy: null).

当前订阅配置

Type: "AWS::SNS::Subscription"
Properties:
  Endpoint:
    Fn::GetAtt: [DynamoWorkConsumerQueue, Arn]
  Protocol: sqs
  RawMessageDelivery: true
  TopicArn: !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${self:custom.config.DomainBusArnName}"
  FilterPolicy:
    "hyperloop.work.env":
      - "testing-event-management" ...

解决方法

  • 显式声明FilterPolicyScope参数:直接在配置中添加FilterPolicyScope并设置为官方默认值MessageAttributes,覆盖后端校验的null值问题。修改后的配置如下:
Type: "AWS::SNS::Subscription"
Properties:
  Endpoint:
    Fn::GetAtt: [DynamoWorkConsumerQueue, Arn]
  Protocol: sqs
  RawMessageDelivery: true
  TopicArn: !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${self:custom.config.DomainBusArnName}"
  FilterPolicy:
    "hyperloop.work.env":
      - "testing-event-management" ...
  FilterPolicyScope: MessageAttributes
  • 检查部署工具版本:如果使用Serverless Framework、SAM等工具部署,可能工具版本更新后对SNS资源的参数处理逻辑发生变化,导致原本的隐性默认值不再生效。可以尝试回退工具版本验证,或保持工具最新并显式配置参数。

  • 适配AWS后端校验变更:AWS可能调整了SNS订阅的参数校验逻辑,当存在FilterPolicy时要求必须显式指定FilterPolicyScope。显式配置参数即可绕过该校验错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:12:50