204: 属性フィルタで配信先を分ける
コンシューマ・グループのフィルタはメッセージ本文ではなく属性を評価します。属性に応じた配信の違いを確認します。
所要時間 : 約40分
前提条件 : 203章のqueue-tutorial-fanoutが利用できること
注意 : フィルタはメッセージの初回公開時だけ評価されます。primaryを無効にするとどのフィルタにも一致しないメッセージが失われる可能性があるため、本章では有効のままにします。
費用に関する注意 : 属性フィルタは追加料金が発生するコンシューマ・グループを使用します。本章を実施する前に料金を確認し、組織で必要な承認を得てください。
目次:
- コンシューマ・グループ一覧で追加をクリックします。
- 名前へ
tutorial-high-priority、フィルタへ:priority = "high"を入力します。
- DLQ配信試行回数を確認して追加します。
- 期待結果: フィルタ式付きのグループが有効になります。
- 失敗時確認: 属性名の大文字小文字、引用符、式の長さ、管理権限を確認します。
- キュー詳細のメッセージの送信をクリックします。
- 次の2件を1件ずつ送信します。メッセージ属性のキーへ
priority、値へそれぞれhighまたはnormalを入力します。{"event":"filtered-test","sequence":1}、属性priority=high{"event":"filtered-test","sequence":2}、属性priority=normal
- メッセージタブでPrimary Consumer Groupを選択してポーリングし、続いて
tutorial-high-priorityへ切り替えてポーリングします。- 期待結果: primaryは両方を受け取り、フィルタ付きグループは
highだけを受け取ります。 - 失敗時確認: 本文ではなくattributesへ値を設定したか、送信前にグループが有効だったかを確認します。
- 期待結果: primaryは両方を受け取り、フィルタ付きグループは
フィルタ付きグループからnormalメッセージが返らないことを確認します。検証後は各グループで取得したメッセージを、それぞれの最新receiptで削除します。
- 両方届く場合はグループのフィルタが空でないか確認します。
- どちらも届かない場合は属性キーと値の大文字小文字を確認します。
- フィルタ変更前のメッセージは再評価されないため、新しいメッセージで試します。
検証完了後、グループ内のメッセージを削除し、tutorial-high-priorityを削除します。親キューを後続章で使う場合は保持します。