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 個答案
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
已回答 2 年前
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
已回答 5 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南