Q50 — AWS DVA-C02 第2章
第 50/100 問 | ← 第2章
開発者は、Amazon DynamoDBテーブル内のデータにアクセスするアプリケーションをサポートしています。そのテーブルには、タイムスタンプ形式のexpirationDate属性があります。アプリケーションはスキャン操作で項目を検索し、expirationDate値に基づいてテーブルから項目を削除します。アプリケーションはまもなく廃止される予定であり、開発者は別の方法でこの機能を実装する必要があります。開発者は、コード量を最小限に抑えた解決策を求めています。この要件を満たす解決策は何ですか?
- A. テーブルのexpirationDate属性でTTL(Time-to-Live)を有効化します。DynamoDBストリームを作成します。削除された項目を処理するAWS Lambda関数を作成します。Lambda関数に対してDynamoDBトリガーを作成します。 ✓
- B. 2つのAWS Lambda関数を作成します:1つは項目の削除用、もう1つは項目の処理用です。DynamoDBストリームを作成します。DeleteItem API操作を使用してexpirationDate属性に基づき項目を削除します。GetRecords API操作を使用してDynamoDBストリームから項目を取得し処理します。
- C. 2つのAWS Lambda関数を作成します:1つは項目の削除用、もう1つは項目の処理用です。Amazon EventBridgeのスケジュールルールを作成してLambda関数を呼び出します。DeleteItem API操作を使用してexpirationDate属性に基づき項目を削除します。GetRecords API操作を使用してDynamoDBテーブルから項目を取得し処理します。
- D. テーブルのexpirationDate属性でTTL(Time-to-Live)を有効化します。削除された項目の宛先としてAmazon Simple Queue Service(Amazon SQS)のデッドレターキューを指定します。項目を処理するAWS Lambda関数を作成します。
正解: A. テーブルのexpirationDate属性でTTL(Time-to-Live)を有効化します。DynamoDBストリームを作成します。削除された項目を処理するAWS Lambda関数を作成します。Lambda関数に対してDynamoDBトリガーを作成します。
解説
選択肢Aでは、テーブルのexpirationDate属性でTTL(Time-to-Live)を有効化することが推奨されています。これにより、期限切れの項目が自動的に削除されます。さらに、DynamoDBストリームと削除された項目を処理するAWS Lambda関数を作成し、DynamoDBトリガーでLambda関数とDynamoDBストリームを関連付けることで、削除された項目を自動的に処理できます。このソリューションは、TTLが期限切れ項目を自動的に処理するため、必要なコード量が最少です。開発者は削除された項目を処理するLambda関数のみを記述すればよく、他の選択肢はより多くの手動操作および追加コードを必要とします。したがって、選択肢Aが要件を満たす最も適した解決策です。