content【その設定値をゼロにするなんてとんでもない!】SQSで同じメッセージを複数件受信してしまうPythonAWSPython3sqsSQSをポーリングする処理を実装していたところ、同一メッセージを同時に受信してしまう事象に遭遇した。解説コードはPythonだが、事象は他の言語/SDKでも発生するものと考えられる。何が起きたか以下は、SQSキューからメッセージを最大10件取得するPythonコード。対象のキューにはメッセージが1つしか格納されていない状態とする。MaxNumberOfMessages=10).get('Messages')受信したメッセージを表示する。38d2b0ed81e0200*********このような感じでメッセージID、ボディが全く同じものを3件取得してしまった。同時に取得する件数は1件だったり2件だったりする。原因と対処(推察)キューの設定で可視性タイムアウト(VisibilityTimeout)を0にしていると発生する。これを0より大きな適当な値に変更すれば解消した。可視性タイムアウトSQSはマネージドなメッセージキューイングサービスで、裏側でメッセージデータを分散保持して可用性を高めている。この可視性タイムアウトが無効になっていると、ポーリングリクエストに対して全てのSQSサーバがレスポンスしてしまっていた可能性が高い。スケールを考えないシンプル構成だったため「ええい!こんなオプションは無効じゃ!」と適当に設定していた。↓ここ()ポーリングリクエストオプションを付けてリクエストを送ることもできるが、キュー全体の設定を変えておいた方が無難だと思う。upLoginユーザーは見つかりませんでした。