FIFO トピックの Amazon SNS メッセージ重複除外 - Amazon Simple Notification Service

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

FIFO トピックの Amazon SNS メッセージ重複除外

Amazon SNSFIFOトピックと Amazon SQSFIFOキューはメッセージ重複排除をサポートしています。これにより、次の条件が満たされている限り、厳密に 1 回限りのメッセージの配信と処理が提供されます。

  • サブスクライブされた Amazon SQSFIFOキューが存在し、Amazon SNSサービスプリンシパルがキューにメッセージを配信できるようにするアクセス許可を持っています。

  • Amazon SQSFIFOキューコンシューマーはメッセージを処理し、可視性タイムアウトが期限切れになる前にキューから削除します。

  • Amazon SNSサブスクリプショントピックには、メッセージフィルタリング はありません。メッセージフィルタリングを設定すると、Amazon SNSFIFOトピックは at-most-once 配信をサポートします。これは、サブスクリプションフィルターポリシーに基づいてメッセージをフィルタリングできるためです。

  • メッセージ配信の確認応答を妨げるネットワークの中断はありません。

注記

メッセージ重複除外は、個々のメッセージグループ ではなく、Amazon SNSFIFOトピック全体に適用されます。

Amazon SNSFIFOトピックにメッセージを発行する場合、メッセージには重複排除 ID を含める必要があります。この ID は、Amazon SNSFIFOトピックがサブスクライブされた Amazon SQSFIFOキューに配信するメッセージに含まれます。

特定の重複排除 ID を持つメッセージが Amazon SNSFIFOトピックに正常に発行されると、5 分間の重複排除間隔内に同じ重複排除 ID で発行されたメッセージは受け入れられますが、配信されません。Amazon SNSFIFOトピックは、メッセージがサブスクライブされたエンドポイントに配信された後も、メッセージ重複排除 ID を追跡し続けます。

メッセージ本文が発行されたメッセージごとに一意であることが保証されている場合は、Amazon SNSFIFOトピックとサブスクライブされた Amazon SQSFIFOキューに対してコンテンツベースの重複排除を有効にできます。Amazon SNS はメッセージ本文を使用して、各メッセージの重複排除 ID として使用する一意のハッシュ値を生成するため、各メッセージを送信するときに重複排除 ID を設定する必要はありません。

注記

メッセージ属性はハッシュ計算に含まれません。

Amazon SNSFIFOトピックでコンテンツベースの重複除外が有効になっており、メッセージが重複除外 ID で発行されている場合、発行された重複除外 ID は生成されたコンテンツベースの重複除外 ID を上書きします。

自動車部品価格管理のユースケース例では、価格更新ごとに汎用的に一意の重複除外 ID を設定する必要があります。これは、メッセージ属性が卸売と小売で異なる場合でも、メッセージ本文が同一になる可能性があるためです。ただし、企業が製品 ID と製品料金とともにメッセージ本文にビジネスタイプ (卸売または小売) を追加した場合、Amazon SNSFIFOトピックとサブスクライブされた Amazon SQSFIFOキューでコンテンツベースの重複を有効にすることができます。

自動車部品価格管理の例を使用した、Amazon SNS FIFO (First In、First Out) トピック環境でのメッセージ重複排除の仕組みの例。Amazon SNSFIFOトピックに発行された重複メッセージ (m1) がサブスクライバーシステム (卸売、小売、分析キュー) に複数回配信されないようにする方法を示します。この重複排除により、一意のメッセージのみが処理され、異なるサブスクライバー関数間でのメッセージ処理の効率と精度が向上します。

Amazon SNSFIFOトピックでは、メッセージの順序付けと重複排除に加えて、 AWS KMS キーを使用したメッセージサーバー側の暗号化 (SSE) と、 を使用したVPCエンドポイントを介したメッセージプライバシーがサポートされています AWS PrivateLink。詳細については、「FIFO トピックの Amazon SNS メッセージセキュリティ」を参照してください。