AWS SAA 题库

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

第 784 / 1018 题单选题

一个解决方案架构师正在设计一个运行在AWS Lambda中的支付处理应用程序,该应用程序位于跨多个可用区的私有子网中。该应用程序使用多个Lambda函数,并每天处理数百万笔交易。 该架构必须确保应用程序不处理重复的支付。 哪种解决方案将满足这些要求?

  • A. 使用Lambda检索所有到期支付。将到期支付发布到Amazon S3存储桶。配置S3存储桶具有事件通知以调用另一个Lambda函数来处理到期支付。
  • B. 使用Lambda检索所有到期支付。将到期支付发布到Amazon Simple Queue Service(Amazon SQS)队列。配置另一个Lambda函数轮询SQS队列并处理到期支付。
  • C. 使用Lambda检索所有到期支付。将到期支付发布到Amazon Simple Queue Service(Amazon SQS)FIFO队列。配置另一个Lambda函数轮询FIFO队列并处理到期支付。
  • D. 使用Lambda检索所有到期支付。将到期支付存储在Amazon DynamoDB表中。在DynamoDB表上配置流以调用另一个Lambda函数来处理到期支付。
第 784 / 1018 题正确答案 C
  • C. 使用Lambda检索所有到期支付。将到期支付发布到Amazon Simple Queue Service(Amazon SQS)FIFO队列。配置另一个Lambda函数轮询FIFO队列并处理到期支付。

解析

C选项通过使用FIFO队列确保了消息的有序性,并且只有一个消费者能够处理队列中的消息,从而确保了不会处理重复支付。 A选项中使用S3存储桶,虽然可以触发另一个Lambda函数来处理到期支付,但是没有确保不处理重复支付的机制。 B选项中使用SQS队列,但是普通的SQS队列无法保证消息的有序性,也不能保证只有一个消费者处理消息,因此可能会处理重复支付。 D选项中使用DynamoDB表存储到期支付,并配置流来触发另一个Lambda函数处理到期支付,但是没有提到如何确保不处理重复支付的机制。

AI 解析

AWS FIFO队列设计用于需要严格消息顺序和恰好一次处理的场景。FIFO队列通过消息去重机制(基于消息内容或Deduplication ID)确保每条消息仅被处理一次,适用于支付处理等需避免重复的关键业务。选项C使用SQS FIFO队列符合这一要求,而其他选项(标准队列SQS、S3事件通知、DynamoDB流)无法严格保证不重复。正确答案的选择依据来自AWS官方文档对FIFO队列仅一次处理能力的说明。