SNSExemples de politiques de filtrage Amazon - Amazon Simple Notification Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

SNSExemples de politiques de filtrage Amazon

L'exemple suivant montre la charge utile d'un message envoyé par un SNS sujet Amazon qui traite les transactions des clients.

Le premier exemple comprend le champ MessageAttributes avec 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

Étant donné que ce message comprend le champ MessageAttributes, tout abonnement à une rubrique qui définit un FilterPolicy peut accepter ou rejeter le message de façon sélective, à condition que FilterPolicyScope soit défini sur MessageAttributes dans l'abonnement. Pour plus d'informations sur l'application d'attributs à un message, consultez Attributs des SNS messages Amazon.

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

L'exemple suivant montre les mêmes attributs inclus dans le champ Message, également appelés charge utile du message ou corps de message. Tout abonnement à une rubrique qui définit un FilterPolicy peut accepter ou rejeter le message de façon sélective, à condition que FilterPolicyScope soit défini sur MessageBody dans l'abonnement.

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

Les politiques 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 propriétés de la politique de filtre d'abonnement suivante correspondent aux attributs affectés à l'exemple de message. Notez que la même politique de filtre fonctionne pour un FilterPolicyScope qu'elle soit définie sur MessageAttributes ou MessageBody. Chaque abonné choisit son étendue de filtre en fonction de la composition des messages qu'il reçoit de la rubrique.

Si une seule propriété 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 comporte plusieurs différences entre ses propriétés et les attributs affectés à l'exemple de message. Par exemple, comme le nom de propriété encrypted n'est pas présent dans les attributs du message, cette propriété 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" ] }