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 Respuestas
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
respondido hace 2 años
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
respondido hace 5 meses

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas