Beispiel für Filterrichtlinien - Amazon Simple Notification Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiel für Filterrichtlinien

Das folgende Beispiel zeigt eine Nachrichtennutzlast, zugestellt von einem Amazon-SNS-Thema, das Kundentransaktionen verarbeitet.

Das erste Beispiel enthält das MessageAttributes-Feld mit Attributen, die die Transaktion beschreiben:

  • Interessen des Kunden

  • Name des Geschäfts

  • Status des Ereignisses

  • Kaufpreis in USD

Da diese Nachricht das MessageAttributes-Feld enthält, kann jedes Themenabonnement, das eine FilterPolicy festlegt, die Nachricht selektiv akzeptieren oder ablehnen, sofern FilterPolicyScope im Abonnement auf MessageAttributes festgelegt ist. Weitere Informationen zur Anwendung von Attributen auf Nachrichten finden Sie unter Amazon-SNS-Nachrichtenattribute.

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

Das folgende Beispiel zeigt dieselben Attribute, die im Message-Feld enthalten sind, auch als Nachrichtennutzlast oder Nachrichtentext bezeichnet. Jedes Themenabonnement, das eine FilterPolicy enthält, kann die Nachricht selektiv akzeptieren oder ablehnen, sofern FilterPolicyScope im Abonnement auf MessageBody festgelegt ist.

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

Die folgenden Filterrichtlinien akzeptieren Nachrichten auf der Grundlage ihrer Eigenschaftsnamen und Werte oder weisen sie auf dieser Grundlage ab.

Eine Richtlinie, die die Beispielnachricht akzeptiert

Die Eigenschaften in der folgenden Abonnementfilterrichtlinie entsprechen den der Beispielnachricht zugewiesenen Attributen. Beachten Sie, dass dieselbe Filterrichtlinie für FilterPolicyScope gilt, unabhängig davon, ob sie auf MessageAttributes oder MessageBody festgelegt ist. Jeder Abonnent wählt seinen Filterbereich entsprechend der Zusammensetzung der Nachrichten aus, die er zu dem Thema erhält.

Wenn eine einzelne Eigenschaft in dieser Richtlinie nicht einem der Nachricht zugewiesenen Attribut entsprechen, weist die Richtlinie die Nachricht ab.

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

Eine Richtlinie, die die Beispielnachricht abweist

In der folgenden Abonnementfilterrichtlinie gibt es mehrere Nichtübereinstimmungen zwischen ihren Eigenschaften und den der Beispielnachricht zugewiesenen Attributen. Beispiel: Da der Eigenschaftsname encrypted in den Nachrichtenattributen nicht vorhanden ist, veranlasst diese Richtlinieneigenschaft die Zurückweisung der Nachricht, unabhängig von dem ihm zugewiesenen Wert.

Wenn Abweichungen auftreten, weist die Richtlinie die Nachricht zurück.

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