FIFO トピックの Amazon SNS メッセージ重複排除
Amazon SNS FIFO トピックおよび Amazon SQS FIFO キューでは、メッセージの重複排除がサポートされます。これは、以下の条件が満たされている限り、メッセージの配信と処理を 1 回だけ行います。
-
サブスクライブされた SQS FIFO キューがあり、このキューのアクセス許可により、このキューへのメッセージ配信を Amazon SNS サービスプリンシパルに許可します。
-
Amazon SQS FIFO キューコンシューマーはメッセージを処理し、可視性タイムアウトの期限が切れる前に、キューからメッセージを削除します。
-
Amazon SNS サブスクリプショントピックには、メッセージのフィルター処理がありません。メッセージフィルター処理を設定すると、サブスクリプションフィルターポリシーに基づいてメッセージをフィルター処理できるため、Amazon SNS FIFO トピックは最大 1 回の配信をサポートします。
-
メッセージ配信の確認応答を妨げるネットワークの中断はありません。
注記
メッセージの重複排除は、トピック属性 FifoThroughputScope が Topic に設定されている場合、Amazon SNS FIFO トピック全体に適用されます。トピック属性 FifoThroughputScope が MessageGroup に設定されている場合、メッセージの重複排除は個々のメッセージグループに適用されます。
メッセージを Amazon SNS FIFO トピックに発行する場合、メッセージには重複排除 ID を含める必要があります。この ID は、Amazon SNS FIFO トピックから、サブスクライブされた Amazon SQS FIFO キューに配信するメッセージに含まれます。
特定の重複排除 ID を持つメッセージが Amazon SNS FIFO トピックに正常に発行された場合、5 分間の重複排除インターバルの間、同じ重複排除 ID で発行されたメッセージは受け付けられますが、配信されません。Amazon SNS FIFO トピックは、サブスクライブされたエンドポイントにメッセージが配信された後も、トピック属性 FifoThroughputScope で設定された重複排除スコープでメッセージの重複排除 ID を追跡し続けます。
メッセージの発行ごとにメッセージ本文が一意であることが保証されている場合は、Amazon SNS FIFO トピックとサブスクライブされた Amazon SQS FIFO キューに対してコンテンツベースの重複排除を有効にできます。Amazon SNS は、メッセージ本文を使用して、各メッセージの重複除外 ID として使用する一意のハッシュ値を生成するため、各メッセージを送信するときに重複除外 ID を設定する必要はありません。
注記
メッセージ属性はハッシュ計算に含まれません。
Amazon SNS FIFO トピックでコンテンツベースの重複排除が有効になっている場合、ある重複排除 ID を使ってメッセージが発行されると、発行された重複排除 ID によって生成されたコンテンツベースの重複排除 ID が上書きされます。
自動車部品価格管理のユースケース例では、価格更新ごとに汎用的に一意の重複除外 ID を設定する必要があります。これは、メッセージ属性が卸売と小売で異なる場合でも、メッセージ本文が同一になる可能性があるためです。ただし、企業が、メッセージ本文に製品 ID および製品価格と共にビジネスタイプ (卸売または小売) を追加した場合、Amazon SNS FIFO トピックおよびサブスクライブされた Amazon SQS FIFO キューでコンテンツベースの重複を有効にできます。
メッセージの順序付けと重複排除に加えて、Amazon SNS FIFO トピックでは、AWS KMS キーによるメッセージのサーバー側の暗号化 (SSE)、および AWS PrivateLink による VPC エンドポイント経由のメッセージプライバシーをサポートしています。詳細については、「FIFO トピックの Amazon SNS メッセージセキュリティ」を参照してください。