AWS SNSのサブスクリプションフィルターポリシーで通知をフィルターする方法
SNSのサブスクリプションには、「サブスクリプションフィルターポリシー」というのがあり、この機能を使用することによって通知をフィルターすることが出来ます。
例えば通知対象が「生死」として、「生きている」、「死んでいる」をメールなどのエンドポイントに通知するとします。
生きていることを毎日通知してもらう必要はないので、死んでいる通知のみ受け取りたいという場合サブスクリプションフィルターを利用します。
一旦どちらの情報もうけとるサブスクリプションフィルターを設定してみます。
以下のサブスクリプションフィルターを設定してサブスクリプション登録します。
{ "notify": [ "LIFE", "DEATH" ] }
マネジメントコンソールが以下のようになっていればOKです。
エンドポイントはEメールにしておけばわかりやすいです。
メッセージ発行
本当はプログラムでメッセージ発行しますが、確認だけなのでマネジメントコンソールからメッセージ発行を行います。
メッセージ属性の名前に「notify」、値に「LIFE」を設定します。
メールが届くことが確認できます。
次に死んだ情報を通知します。
メッセージ属性の名前に「notify」、値に「DEATH」を設定します。
メールが届くことが確認できます。
サブスクリプションフィルターの設定変更する
今の状態ではどちらの状態の通知もメールされますので、死んだときだけメール通知するようにサブスクリプションフィルターの設定を変更します。
“LIFE”を削除しました。この状態で生きている情報を通知してみます。
メッセージ属性の名前に「notify」、値に「LIFE」を設定します。
メールが届きません。これで”DEATH”のみメールが送信されるようにフィルターされていることがわかります。
確認の為、メッセージ属性の名前に「notify」、値に「DEATH」を設定します。
メールが届くことが確認できます。これで正常にフィルターがされていることが確認できます。
上限制約
リージョンごとにサブスクリプションフィルターポリシーは200までが上限とのことです。
限度引き上げリクエストにより上限を上げることは出来るようです。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント