DVAAWSのサービスを使用した開発

開発者はDynamoDBテーブルへの変更をリアルタイムで処理するシステムを構築したい。アイテムが更新された際に、更新前と更新後の両方のデータをLambda関数で取得する必要がある。DynamoDB Streamsの設定として正しいものはどれか?

A
StreamViewTypeを「KEYS_ONLY」に設定し、LambdaのイベントソースとしてDynamoDB Streamsを追加する
「KEYS_ONLY」はパーティションキーとソートキーのみがストリームに記録される設定です。更新前後のアイテム全体の属性は含まれないため、更新前後両方のデータを取得する本要件には対応できません。
B
StreamViewTypeを「NEW_IMAGE」に設定し、LambdaのイベントソースとしてDynamoDB Streamsを追加する
「NEW_IMAGE」は更新後のアイテム全体のみがストリームに記録される設定です。更新前のアイテム(OldImage)は含まれないため、更新前後の両方を取得したい本要件は満たせません。
C
StreamViewTypeを「NEW_AND_OLD_IMAGES」に設定し、LambdaのイベントソースとしてDynamoDB Streamsを追加する
✓ 正解
「NEW_AND_OLD_IMAGES」は更新前後の両方のアイテム全体を記録します。LambdaはDynamoDB Streamsを直接イベントソースに設定でき、Kinesis経由も不要なため本要件に最適です。
D
StreamViewTypeを「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生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る