Q12 — AWS DVA-C02 第2章
第 12/100 問 | ← 第2章
開発者は、新しいファイルがAmazon S3バケットに追加された直後に、Amazon DynamoDBテーブルにレコードを挿入したいと考えています。この目的を達成するために必要な手順はどれですか?
- A. Amazon EventBridgeを使用してS3バケットを監視するイベントを作成し、その後DynamoDBにレコードを挿入します。
- B. S3イベントを設定して、DynamoDBにレコードを挿入するAWS Lambda関数を呼び出します。 ✓
- C. S3バケットをポーリングするAWS Lambda関数を作成し、その後DynamoDBにレコードを挿入します。
- D. スケジュールされた時間に実行されるcronジョブを作成し、DynamoDBにレコードを挿入します。
正解: B. S3イベントを設定して、DynamoDBにレコードを挿入するAWS Lambda関数を呼び出します。
解説
S3イベント通知:Amazon S3は、特定のイベント(例:ファイルのアップロード)が発生した際に他のAWSサービスのアクションをトリガーするイベント通知を設定できます。これにはAWS Lambda関数の呼び出しが含まれます。 AWS Lambda:AWS Lambdaは、イベント駆動型でコードを実行できるサーバーレスコンピューティングサービスです。S3イベント通知を受け取ると自動的に実行されるLambda関数を記述できます。 リアルタイム応答:S3イベント通知を設定すると、S3バケットへの新規ファイルのアップロード時にS3がLambda関数にイベント通知を送信します。Lambda関数はこのイベントに即座に応答し、DynamoDBテーブルへの関連情報のレコード挿入などの指定された操作を実行できます。 他の選択肢との比較: 選択肢A:Amazon EventBridgeを使用してS3バケットを監視し、DynamoDBへのレコード挿入を行うことは可能ですが、AWSはS3イベント通知を直接Lambda関数にトリガーさせる方法を推奨しており、これの方がシンプルかつリアルタイム性が高いです。 選択肢C:S3バケットを定期的にポーリングするLambda関数を作成し、DynamoDBへのレコード挿入を行うことも可能ですが、これはS3イベント通知によるLambda関数の即時応答よりも非効率的です。 選択肢D:定期的にS3バケットをポーリングしてDynamoDBへのレコード挿入を行うcronジョブを作成する方法も同様に、イベント駆動型の即時応答よりも非効率です。 したがって、ファイルがS3にアップロードされた直後にDynamoDBテーブルにレコードを挿入するという目標を達成するには、選択肢B(S3イベントを設定してLambda関数を呼び出す)が最適な手順です。