Exemples de stratégies de filtre - Amazon Simple Notification Service

Exemples de stratégies de filtre

L'exemple suivant montre une charge utile de message envoyée par une rubrique Amazon SNS qui publie des transactions clients. Le champ MessageAttributes comprend des attributs qui décrivent la transaction :

  • Intérêts du client

  • Nom du magasin

  • État de l'événement

  • Prix d'achat en USD

Ce message incluant le champ MessageAttributes, tout abonnement à une rubrique comprenant une politique de filtre peut accepter ou rejeter le message de façon sélective.

{ "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" } } }

Pour plus d'informations sur l'application d'attributs à un message, consultez Attributs de message Amazon SNS.

Les stratégies de filtre suivantes acceptent ou rejettent les messages en fonction de leurs noms et valeurs d'attribut.

Une politique qui accepte l'exemple de message

Les attributs de la politique de filtre d'abonnement suivante correspondent à ceux affectés à l'exemple de message.

Si un seul attribut de cette politique ne correspond pas à un attribut affecté au message, la politique rejette le message.

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

Une politique qui rejette l'exemple de message

La politique de filtre d'abonnement suivante a plusieurs différences entre ses attributs et ceux affectés à l'exemple de message. Comme le nom d'attribut encrypted n'est pas présent dans les attributs du message, cet attribut de la politique entraîne le rejet du message, quelle que soit la valeur qui lui est affectée.

En cas de non-correspondance, la politique rejette le message.

{ "store": ["example_corp"], "event": ["order_cancelled"], "encrypted": [false], "customer_interests": [ "basketball", "baseball" ] }