Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Amazon SNS example filter policies

Focus mode
Amazon SNS example filter policies - Amazon Simple Notification Service

The following example shows a message payload delivered by an Amazon SNS topic that processes customer transactions.

The first example includes the MessageAttributes field with attributes that describe the transaction:

  • Customer's interests

  • Store name

  • Event state

  • Purchase price in USD

Because this message includes the MessageAttributes field, any topic subscription that sets a FilterPolicy can selectively accept or reject the message, as long as FilterPolicyScope is set to MessageAttributes in the subscription. For information about applying attributes to a message, see Amazon SNS message attributes.

{ "Type": "Notification", "MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "Message": "message-body-with-transaction-details", "Timestamp": "2019-11-03T23:28:01.631Z", "SignatureVersion": "4", "Signature": "signature", "UnsubscribeURL": "unsubscribe-url", "MessageAttributes": { "customer_interests": { "Type": "String.Array", "Value": "[\"soccer\", \"rugby\", \"hockey\"]" }, "store": { "Type": "String", "Value":"example_corp" }, "event": { "Type": "String", "Value": "order_placed" }, "price_usd": { "Type": "Number", "Value": "210.75" } } }

The following example shows the same attributes included within the Message field, also referred to as the message payload or message body. Any topic subscription that includes a FilterPolicy can selectively accept or reject the message, as long as FilterPolicyScope is set to MessageBody in the subscription.

{ "Type": "Notification", "MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "Message": "{ \"customer_interests\": [\"soccer\", \"rugby\", \"hockey\"], \"store\": \"example_corp\", \"event\":\"order_placed\", \"price_usd\":210.75 }", "Timestamp": "2019-11-03T23:28:01.631Z", "SignatureVersion": "4", "Signature": "signature", "UnsubscribeURL": "unsubscribe-url" }

The following filter policies accept or reject messages based on their property names and values.

A policy that accepts the example message

The properties in the following subscription filter policy match the attributes assigned to the example message. Note that the same filter policy works for a FilterPolicyScope whether it's set to MessageAttributes or MessageBody. Each subscriber chooses their filtering scope according to the composition of the messages that they receive from the topic.

If any single property in this policy doesn't match an attribute assigned to the message, the policy rejects the message.

{ "store": ["example_corp"], "event": [{"anything-but": "order_cancelled"}], "customer_interests": [ "rugby", "football", "baseball" ], "price_usd": [{"numeric": [">=", 100]}] }

A policy that rejects the example message

The following subscription filter policy has multiple mismatches between its properties and the attributes assigned to the example message. For example, because the encrypted property name isn't present in the message attributes, this policy property causes the message to be rejected regardless of the value assigned to it.

If any mismatches occur, the policy rejects the message.

{ "store": ["example_corp"], "event": ["order_cancelled"], "encrypted": [false], "customer_interests": [ "basketball", "baseball" ] }
PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.