DVAAWSのサービスを使用した開発
開発者はDynamoDBテーブルへの変更をリアルタイムで処理するシステムを構築したい。アイテムが更新された際に、更新前と更新後の両方のデータをLambda関数で取得する必要がある。DynamoDB Streamsの設定として正しいものはどれか?
AStreamViewTypeを「KEYS_ONLY」に設定し、LambdaのイベントソースとしてDynamoDB Streamsを追加する
「KEYS_ONLY」はパーティションキーとソートキーのみがストリームに記録される設定です。更新前後のアイテム全体の属性は含まれないため、更新前後両方のデータを取得する本要件には対応できません。
BStreamViewTypeを「NEW_IMAGE」に設定し、LambdaのイベントソースとしてDynamoDB Streamsを追加する
「NEW_IMAGE」は更新後のアイテム全体のみがストリームに記録される設定です。更新前のアイテム(OldImage)は含まれないため、更新前後の両方を取得したい本要件は満たせません。
CStreamViewTypeを「NEW_AND_OLD_IMAGES」に設定し、LambdaのイベントソースとしてDynamoDB Streamsを追加する
✓ 正解
「NEW_AND_OLD_IMAGES」は更新前後の両方のアイテム全体を記録します。LambdaはDynamoDB Streamsを直接イベントソースに設定でき、Kinesis経由も不要なため本要件に最適です。
DStreamViewTypeを「OLD_IMAGE」に設定し、Kinesis Data Streamsと連携してLambdaで処理する
「OLD_IMAGE」は更新前のアイテムのみが記録され更新後データを取得できません。加えてDynamoDB StreamsはLambdaを直接トリガーでき、Kinesis Data Streamsとの連携は不要なため二重に誤りです。
解説
DynamoDB StreamsのStreamViewTypeには4種類あります。
KEYS_ONLYはキー属性のみ、NEW_IMAGEは更新後のアイテム、OLD_IMAGEは更新前のアイテム、NEW_AND_OLD_IMAGESは更新前後の両方を含みます。更新前後の両方が必要な場合はNEW_AND_OLD_IMAGESを選択します。
LambdaはDynamoDB Streamsを直接イベントソースとして設定でき、Kinesisを経由する必要はありません。
選択肢Aの「KEYS_ONLY」ではキー属性のみが含まれ、アイテム全体を取得できません。
選択肢Bの「NEW_IMAGE」では更新後のアイテムのみで更新前データが取得できません。
選択肢Dの「OLD_IMAGE」では更新前のみで更新後が取得できず、Kinesis連携も不要です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →