一家公司在 AWS Lambda 函数上托管了一个应用程序,该函数由 Amazon API Gateway API 调用。Lambda 函数将客户数据保存到 Amazon Aurora MySQL 数据库中。每当公司升级数据库时,Lambda 函数在升级完成之前都无法建立数据库连接,导致某些事件的客户数据丢失。解决方案架构师需要设计一个解决方案,用于存储数据库升级期间创建的客户数据。哪种解决方案能满足这些要求?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 将客户数据存储在 Amazon Simple Queue Service (Amazon SQS) FIFO 队列中。创建一个新的 Lambda 函数来轮询队列并将客户数据存储在数据库中。.
为什么这是答案
当数据库升级时,Lambda 函数无法立即连接数据库,导致数据丢失。将客户数据存储在 Amazon SQS FIFO 队列中,可以确保数据按顺序持久化,即使数据库暂时不可用。新的 Lambda 函数可以异步轮询 SQS 队列,并在数据库可用时将数据写入 Aurora。这提供了一个解耦的、容错的解决方案,避免了数据丢失。 其他选项: 预置 Amazon RDS Proxy 可以在一定程度上管理数据库连接,但它不能在数据库完全不可用时存储数据。 增加 Lambda 运行时并创建重试机制可能会导致 Lambda 函数超时,并且在数据库长时间不可用时仍然无法解决数据持久化问题。 将客户数据持久化到 Lambda 本地存储是不可靠的,因为 Lambda 实例是短暂的,本地存储会在函数执行结束后丢失。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡