Q73 — AWS DVA-C02 第2章
第 73/100 問 | ← 第2章
開発者が、Amazon DynamoDBテーブルに対する変更を処理するためのサーバーレスアプリケーションを開発しています。開発者は、DynamoDBテーブルの変更を検出するためにLambda関数をどのように設定すべきでしょうか?
- A. Amazon Kinesisデータストリームを作成し、それをDynamoDBテーブルにアタッチします。データストリームをLambda関数に接続するためのトリガーを作成します。
- B. Amazon EventBridgeルールを作成し、定期的にLambda関数を呼び出します。Lambda関数からDynamoDBテーブルに接続して変更を検出します。
- C. テーブルでDynamoDB Streamsを有効化します。DynamoDB StreamsをLambda関数に接続するためのトリガーを作成します。 ✓
- D. Amazon Kinesis Data Firehose配信ストリームを作成し、それをDynamoDBテーブルにアタッチします。配信ストリームのターゲットをLambda関数に設定します。
正解: C. テーブルでDynamoDB Streamsを有効化します。DynamoDB StreamsをLambda関数に接続するためのトリガーを作成します。
解説
DynamoDB Streams:DynamoDB Streamsは、DynamoDBテーブルに対するすべてのデータ変更をキャプチャする機能です。これらの変更は時系列順に記録され、関連付けられたAWSアカウントへイベントストリームとして送信されます。 Lambdaトリガー:AWS LambdaはDynamoDB Streamsと直接統合でき、トリガーとして使用可能です。DynamoDBテーブル内のデータが変更されると、DynamoDB StreamsがLambda関数を起動し、変更に関するイベントレコードを渡します。 リアルタイムイベント処理:DynamoDB StreamsとLambdaトリガーを組み合わせることで、リアルタイムのデータ処理および反応型アプリケーションを実現できます。Lambda関数は、DynamoDBテーブルにおける挿入、更新、削除操作に対して即座に応答し、必要なビジネスロジックを実行したり、他のAWSサービスをトリガーしたりできます。 他の選択肢との比較理由: 選択肢AおよびD:Amazon KinesisデータストリームまたはAmazon Kinesis Data Firehoseを使用しますが、これらはリアルタイムデータ処理およびデータ転送向けであり、DynamoDBテーブルの変更と直接統合するための推奨手法ではありません。DynamoDB Streamsは、DynamoDBテーブルの変更をキャプチャするために専門設計されており、より直接的かつ効率的です。 選択肢B:EventBridgeルールを用いてLambda関数を定期的に呼び出す方法ですが、これはDynamoDBテーブルの変更をリアルタイムで処理する要件を満たしません。EventBridgeによる定期実行では、変更に対する即時応答および処理が不可能です。 したがって、選択肢Cが、DynamoDBテーブルの変更を検出し処理するためのLambda関数を設定する最も直接的かつ効率的なソリューションです。