AWS SAA 题库

点击卡片任意位置翻面查看正确答案与解析,也可以用键盘 切换题目。

第 80 / 1018 题单选题

一家公司在AWS Lambda函数上托管一个应用程序,这些函数由Amazon API Gateway API调用。Lambda函数将客户数据保存到Amazon Aurora MySQL数据库中。每当公司升级数据库时,Lambda函数无法建立数据库连接,直到升级完成。结果是在数据库升级期间无法记录一些事件的客户数据。 解决方案架构师需要设计一个解决方案,用于存储在数据库升级期间创建的客户数据。 哪种解决方案将满足这些要求?

  • A. 部署一个Amazon RDS代理,位于Lambda函数和数据库之间。将Lambda函数配置为连接到RDS代理。
  • B. 将Lambda函数的运行时间增加到最大值。在代码中创建一个重试机制,用于将客户数据存储到数据库。
  • C. 将客户数据持久化到Lambda本地存储。配置新的Lambda函数来扫描本地存储,以将客户数据保存到数据库。
  • D. 将客户数据存储在Amazon Simple Queue Service(Amazon SQS)FIFO队列中。创建一个新的Lambda函数,轮询队列并将客户数据存储到数据库中。
第 80 / 1018 题正确答案 D
  • D. 将客户数据存储在Amazon Simple Queue Service(Amazon SQS)FIFO队列中。创建一个新的Lambda函数,轮询队列并将客户数据存储到数据库中。

解析

使用Amazon SQS FIFO队列作为解决方案可以解决数据库升级期间的数据存储问题。当数据库升级导致Lambda函数无法连接时,客户数据仍然可以通过存储在SQS队列中的消息进行暂存。然后,可以创建一个新的Lambda函数,用于轮询SQS队列,并将客户数据存储到数据库中,以确保不会丢失任何数据。 其他选项的问题是: 选项A中的Amazon RDS代理在这种情况下可能并不会解决问题,因为代理本身也可能受到数据库升级的影响。 选项B中的最大运行时间和重试机制不会解决数据在数据库升级期间的不可用性问题。 选项C中,将数据存储在Lambda本地存储可能会导致数据的丢失,因为本地存储可能会在Lambda函数执行期间重置。因此,选项D是最佳选择,因为它提供了一种持久化存储和轮询机制,以确保数据在数据库升级期间不会丢失。

AI 解析

本题核心在于处理数据库不可用期间的异步数据持久化。AWS Lambda在数据库升级时无法建立连接,需引入消息队列实现解耦。Amazon SQS提供可靠的消息存储和顺序处理(FIFO特性),允许Lambda将数据暂存至队列而非直接写入数据库。当数据库恢复后,新Lambda可从队列消费并持久化数据,确保事务完整性。其他方案中,RDS代理仅优化连接池无法解决停机问题,重试机制受Lambda超时限制,本地存储存在数据丢失风险,均无法满足需求。