AWS SAA 题库
点击卡片任意位置翻面查看正确答案与解析,也可以用键盘 ← → 切换题目。
一家公司有一个数据摄取工作流,包括以下组件: 一个Amazon Simple Notification Service (Amazon SNS) 主题,用于接收有关新数据交付的通知。 一个AWS 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选项通过队列解耦实现可靠异步处理,符合容错设计原则。