IT資格マップ

DVA-C03 練習問題5:SQSのバッチで失敗した1通だけ再試行する

DVA-C03の練習問題5です。SQSをLambdaで処理するとき、バッチのうち失敗した1通だけを再試行させる設定を、四択で解きます。

AWS Developer(DVA-C03)

AWS DVA-C03 オリジナル問題 5

人が全選択肢を確認済み(AI 作成)

AI が一次情報をもとに作成し、人がすべての選択肢を確認しました(確認)。

根拠(Amazon Web Servicesの公開資料の要約):SQS のイベントソースマッピングで部分的なバッチ応答を有効にすると、失敗したメッセージの ID だけを返して再試行できる。根拠の資料を開く

Amazon Web Services、AWS は、Amazon.com, Inc. またはその関連会社の商標です。当サイトはAmazon Web Servicesと提携・公認の関係にありません。この問題は当サイトが独自に作成したもので、実際の試験の問題ではありません。

根拠の資料と食い違う点があれば、資料が優先です。解説文は検証の対象外です。品質方針

Amazon SQS のキューを、バッチサイズ10で AWS Lambda に処理させています。1通のメッセージの処理に失敗すると、バッチの10通がすべて再処理され、成功した9通も重複して処理されてしまいます。スループットのためバッチサイズは10のまま、失敗した1通だけを再試行させたいと考えています。最も適した方法はどれですか。

解答群
答えと選択肢ごとの根拠を見る

正解:エ(イベントソースマッピングで ReportBatchItemFailures を有効にし、関数が失敗したメッセージの ID を batchItemFailures として返す。) 当サイトの解答

  • ア × 誤り 再処理の単位が小さければ、よいと考えた

    重複は減りますが、バッチサイズを10のまま保つという条件に反します。スループットも下がります。

  • イ × 誤り 待ち時間を伸ばせば、失敗した分だけが再処理されると考えた

    可視性タイムアウトは、再び見えるようになるまでの待ち時間です。どのメッセージを再処理するかは変えません。

  • ウ × 誤り 関数の設定で、失敗の単位を変えられると考えた

    タイムアウトを延ばしても、1通の失敗でバッチ全体が再試行される動きは変わりません。

  • エ ○ 正しい

    部分的なバッチ応答を有効にすると、返された ID のメッセージだけがキューに残って再試行されます。バッチサイズは変えずに済みます。

形式の参考:AWS Certified Developer - Associate (DVA-C03) 試験ガイドAmazon Web Services資料を開く(確認)

この問題の誤りを報告
どこが違いますか

名前や連絡先は書かないでください。内容は訂正の確認にだけ使い、90日で削除します。

解説を開く

解説

答えはウ:部分的なバッチ応答

既定では、バッチの処理が失敗すると、バッチ全体が再処理の対象です。ReportBatchItemFailures を有効にして、失敗したメッセージの ID を応答で返すと、成功したメッセージは削除され、失敗した分だけが再試行されます。

この問題は、試験ガイドの分野「Development with AWS Services」にあたります。当サイトが作った問題で、公式のサンプル問題とは別です。

誤答は何を取り違えているか

アは条件に反し、イとエは、再処理の単位を変えません。

似た問題を解くときの手がかり

この設定にしても、同じメッセージが2回届くことはありえます。処理は、同じメッセージを2回受けても結果が変わらない作り(冪等)にしておきます。

関連するページ

参考にした資料