フィルタポリシーの例 - Amazon Simple Notification Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

フィルタポリシーの例

以下の例は、顧客のトランザクションを公開する Amazon SNS トピックによって送信されるメッセージペイロードを示しています。MessageAttributes フィールドには、トランザクションを記述する以下の属性が含まれます。

  • 顧客の興味

  • ストア名

  • イベント状態

  • 購入価格 (USD)

このメッセージには MessageAttributes フィールドが含まれるため、フィルタポリシーを含むすべてのトピックのサブスクリプションでは、メッセージを選択的に許可または拒否することができます。

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

メッセージへの属性の適用の詳細については、「Amazon SNS メッセージ属性」を参照してください。

以下のフィルタポリシーでは、属性の名前と値に基づいてメッセージを許可または拒否します。

サンプルメッセージを許可するポリシー

次のサブスクリプションフィルタポリシーの属性は、メッセージ例に割り当てられた属性に一致します。

このポリシーの 1 つの属性が、メッセージに割り当てられた属性と一致しなかった場合、ポリシーはメッセージを拒否します。

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

サンプルメッセージを拒否するポリシー

次のサブスクリプションフィルタポリシーでは、その属性と、メッセージ例に割り当てられた属性の間に、複数の不一致があります。encrypted 属性名はメッセージ属性に存在していないため、メッセージに割り当てられている値にかかわらず、このポリシー属性によってメッセージは拒否されます。

不一致が発生すると、ポリシーはメッセージを拒否します。

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