AWS SAA 题库

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

第 132 / 1018 题单选题

一家公司有一个数据摄取工作流,包括以下组件: 一个Amazon Simple Notification Service (Amazon SNS) 主题,用于接收有关新数据交付的通知。 一个AWS Lambda函数,用于处理和存储数据。 摄取工作流偶尔因网络连接问题而失败。当发生故障时,相应的数据将不会被摄取,除非公司手动重新运行作业。 要确保所有通知最终被处理,解决方案架构师应该采取哪些措施?

  • A. 配置Lambda函数以跨多个可用区部署。
  • B. 修改Lambda函数的配置以增加函数的CPU和内存分配。
  • C. 配置SNS主题的重试策略,以增加重试次数和重试之间的等待时间。
  • D. 配置Amazon Simple Queue Service (Amazon SQS)队列作为故障时的目标。修改Lambda函数以处理队列中的消息。
第 132 / 1018 题正确答案 D
  • D. 配置Amazon Simple Queue Service (Amazon SQS)队列作为故障时的目标。修改Lambda函数以处理队列中的消息。

解析

选项D是最佳解决方案,因为它提供了一种可靠的方式来处理通知,即使出现连接问题也不会导致数据丢失。配置Amazon SQS队列作为故障时的目标,将通知发送到队列中,然后由Lambda函数定期处理队列中的消息。这样,即使发生故障,通知不会丢失,而是被排队以后续处理。 选项A中的跨多个可用区部署Lambda函数不会解决通知丢失问题,因为它涉及故障后的重试,而不是通知的安全存储。 选项B中增加Lambda函数的CPU和内存分配也不会解决通知丢失问题,因为它不提供通知的持久性存储。 选项C中增加SNS主题的重试策略可能会在一定程度上帮助,但没有提供消息持久性存储,如果通知在重试期间仍然失败,仍然会丢失。因此,最好的方法是使用队列来确保通知不会丢失。

AI 解析

本题核心在于实现消息处理的容错机制。SNS作为通知服务不具备消息持久化能力,当Lambda处理失败时可能导致数据丢失。根据AWS服务特性,配置SQS队列作为SNS订阅目标(消息持久化存储)并绑定Lambda消费队列,可利用SQS自动重试、可见性超时等机制保障最终一致性。其他选项A/B涉及资源冗余和扩容,无法解决临时网络故障导致的消息丢失;C调整SNS重试策略仅作用于推送阶段,无法覆盖Lambda处理失败场景。D选项通过队列解耦实现可靠异步处理,符合容错设计原则。