Q37 — AWS SAA-C03 第17章
第 37/89 题 | ← 返回第17章
Q1337. 一家公司正在开发一款移动金融应用,用户可以注册并存储个人信息。该应用使用 Amazon DynamoDB 表来存储用户详细信息和偏好设置。应用利用 DynamoDB 中存储的数据生成信用评分报告,并每月向用户发送一次信用评分报告。公司需要为用户提供删除数据和偏好设置的选项。应用程序必须在收到删除请求后一个月内删除客户数据。哪种解决方案能够以最低的运营成本满足这些要求?
- A. 创建一个 AWS Lambda 函数来删除用户信息。创建一个 Amazon EventBridge 规则,使其在指定的 TTL 到期时运行。配置 EventBridge 规则以调用 Lambda 函数。
- B. 创建一个 DynamoDB 流。创建一个 AWS Lambda 函数来删除用户信息。当指定的 TTL 到期时,将用户信息从 DynamoDB 表写入 DynamoDB 流。配置 DynamDB 流以调用 Lambda 函数删除用户信息。
- C. 在 DynamoDB 中启用 TTL(生存时间)。将过期日期设置为一个属性。创建一个 AWS Lambda 函数,根据过期日期值设置 TTL。当用户请求删除个人数据时,调用 Lambda 函数。 ✓
- D. 在 DynamoDB 中启用 TTL(生存时间)。创建一个 AWS Lambda 函数来删除用户信息。配置 AWS Config,使其在 TTL 到期时检测 DynamoDB 阶段的更改,并调用 Lambda 函数。
正确答案: C. 在 DynamoDB 中启用 TTL(生存时间)。将过期日期设置为一个属性。创建一个 AWS Lambda 函数,根据过期日期值设置 TTL。当用户请求删除个人数据时,调用 Lambda 函数。
解析
A 或 C。启用 DynamoDB TTL 是在指定过期时间后删除项目的开销最低的原生机制。当用户请求删除时,应用程序可以设置过期时间戳属性 (TTL);DynamoDB 会自动使项目过期(通常在时间戳后的 48 小时内,但您可以设置时间戳,以便在所需的一个月窗口期内实际删除)。选项 C 仅使用 Lambda 函数在用户请求删除时设置 TTL 属性——只需极少的额外基础设施和代码。无需轮询,无需额外的事件编排,删除操作由 DynamoDB 处理。其他选项为何不太合适:答:EventBridge 本身不会在 DynamoDB TTL 过期时触发;构建一个在 TTL 过期时运行的规则并不是 TTL 的显示方式,需要额外的自定义调度/管理。- B:DynamoDB Streams 不会发出 TTL 过期事件(过期项是异步删除的,不会出现在流中),因此这种方法无法可靠地工作。- D:AWS Config 无法检测单个项目的 TTL 过期时间,因此不适用于按项目删除工作流;使用 Config 会增加不必要的复杂性。