Cloudformation SNS subscription filterpolicy with "or" conditions of "and" expressions

0

I use AWS YAML cloudformation to create SNS subscription and need filter policy with multiple "or" conditions each having "and" expressions.

Something like:

{"creditAccountNumber": ["00001"], "status": ["OK", "CANCEL"] } or {"debitAccountNumber": ["00001"], "status": ["OK", "CANCEL"] }

It would be something similar to cloudformation below(wich doesn't work).

  ObjectTest:
    Type: AWS::SNS::Subscription
    Properties:
      RawMessageDelivery: true
      Protocol: sqs
      Endpoint: ...
      Region: ...
      TopicArn: ...
      FilterPolicy: !Or
        - '{"creditAccountNumber": ["00001"], "status": ["OK", "CANCEL"] }'
        - '{"debitAccountNumber": ["00001"], "status": ["OK", "CANCEL"] }'

Does anyone know how to do it correctly?

Thanks.

2 Answers
1

Seems you can't even do that kind of SNS subscription filter policy directly. As per the AWS documentation https://docs.aws.amazon.com/sns/latest/dg/and-or-logic.html:

Currently, you can't use SNS filters to apply OR logic across different message attributes. Instead, you can use multiple SNS subscriptions with different endpoints to achieve the same effect. For example, assume that you have message attributes named customer_interests and customer_preferences. To apply OR logic across both attributes, create an SNS subscription to match each message attribute. Then, you can use your subscriber application to consume both types of messages through the different endpoints.

profile picture
joahna
answered 2 years ago
0

In Nov 2023, SNS message filtering added support for the “OR” operator in filter policies. More information: https://aws.amazon.com/about-aws/whats-new/2023/11/amazon-sns-message-additional-filtering-operators/

Otavio
answered 5 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions