DVAトラブルシューティングと最適化
SQSキューをイベントソースとするLambda関数があります。Lambda関数内でエラーが発生して処理に失敗したメッセージを、調査のために別のキューに隔離したいと考えています。最も適切な設定はどれですか?
ASQSキュー自体にデッドレターキュー(DLQ)を設定し、maxReceiveCountを適切な値に設定する
✓ 正解
SQSをイベントソースとするLambdaはポーリングベースの同期呼び出しです。処理失敗メッセージの隔離はSQSキュー側のDLQとmaxReceiveCount(最大受信回数)で制御する必要があります。
BLambda関数の非同期呼び出し設定でデッドレターキュー(DLQ)を設定する
Lambda 関数の非同期呼び出し設定でのDLQ設定は非同期呼び出し(S3、SNS等)にのみ適用され、SQSトリガーには機能しません。
CLambda関数の送信先(Destination)に失敗時のSQSキューを設定する
Lambda 関数の送信先(Destination)に失敗時のSQSキューを設定する方法も、非同期呼び出しにのみ適用され、SQSイベントソース使用時は機能しません。
DLambda関数内でtry-catchを使用し、エラー発生時に手動でDLQキューへメッセージを送信するコードを追加する
Lambda 関数内での手動DLQ送信は実装コストが高く、SQSの標準機能である DLQ とmaxReceiveCountで十分です。
解説
SQSをイベントソースとするLambdaはポーリングベースの同期呼び出しです。処理失敗メッセージの隔離はSQSキュー側のDLQとmaxReceiveCount(最大受信回数)で制御する必要があります。
選択肢Bの Lambda 関数の非同期呼び出し設定でのDLQ設定は非同期呼び出し(S3、SNS等)にのみ適用され、SQSトリガーには機能しません。
選択肢Cの Lambda 関数の送信先(Destination)に失敗時のSQSキューを設定する方法も、非同期呼び出しにのみ適用され、SQSイベントソース使用時は機能しません。
選択肢Dの Lambda 関数内での手動DLQ送信は実装コストが高く、SQSの標準機能である DLQ とmaxReceiveCountで十分です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →