Q91 — AWS DVA-C02 第3章

第 91/100 問 | ← 第3章

ある開発者は、Amazon API Gateway を使用するマイクロサービスアプリケーションを構築しています。このアプリケーションは AWS Lambda、Amazon SQS、および Amazon DynamoDB を利用しています。Lambda 関数の1つがメッセージを SQS FIFO キューに追加します。開発者がアプリケーションログを調査したところ、DynamoDB テーブルに重複した項目が見つかりました。これらの重複項目は、キューからメッセージをポーリングして処理する別の関数によって挿入されたものです。 この問題の最も可能性の高い原因は何ですか?

正解: D. ポーリング関数のタイムアウトがキューの可視性タイムアウトよりも長くなっています。

解説

正解は D です。この状況では、ポーリング関数のタイムアウトがキューの可視性タイムアウトより長い場合に問題が発生する可能性があります。ポーリング関数のタイムアウト時間がキューの可視性タイムアウトより長いと、キューはメッセージが処理されていないと判断し、再度関数に配信してしまうため、重複処理および DynamoDB テーブルへの重複挿入が発生します。A の DynamoDB 書き込み制限は、通常、直接的な重複項目の原因にはなりません。B の SQS キューは、正常な動作では同一メッセージを複数回配信しません。C の API Gateway は、通常、SQS キュー内のメッセージを複製しません。したがって、最も可能性の高い原因は D です。