Q53 — AWS DOP-C02 第3章
第 53/100 题 | ← 返回第3章
一家太空探索公司接收范自多颗卫星的遥测数据。争数据包通活亚马逊API网关接收,并直接放笔亚马逊简单队列服务(亚马逊SQS) 标准队列。定相应难程序订阅队列,并将数据转换为标准格式。 由于卫星书生的数据不一致,应难程序响唱岛法转换数据。在这些情况下,消息保亮在SQS队列中。DevOps工程师客间开发一个解 决方案范保亮失败的消息,并让土学家可以查看和进一步处理它们。 哪种解决方案能够两足这些要求?
- A. 配置AWS Lambda来轮询SQS队列,并调用Lambda函数来检查队列消息是否有效。如果验证失败,将无效数据的副本发送到亚马 逊S3存储桶,以便科学家可以查看和更正数据。更正数据后,使用带有更正数据的replay Lambda函数修改SQS队列中的消息。
- B. 将SQS标准队列转换为SQS FIFO队列。通过使用Amazon EventBridge时间表,配置AWS Lambda每10分钟轮询一次SQS队列。调用 Lambda函数来标识SentTimestamp值超过5分钟的任何消息,将数据推送到与应用程序的输出位置相同的位置,并从队列中移除 消息。
- C. 创建SQS死信队列。通过包含一个重新驱动策略来修改现有队列,该策略将最大接收数设置为1,并将死信队列ARN设置为新创 建队列的ARN。指导科学家使用死信队列来检查无效的数据。稍后重新处理这些数据。 ✓
- D. 配置API网关,将消息发送到为每个卫星命名的不同SQS虚拟队列。更新应用程序,对它无法转换的任何数据使用新的虚拟队 列,并将消息发送到新的虚拟队列。指导科学家使用虚拟队列来检查无效的数据。稍后重新处理这些数据。
正确答案: C. 创建SQS死信队列。通过包含一个重新驱动策略来修改现有队列,该策略将最大接收数设置为1,并将死信队列ARN设置为新创 建队列的ARN。指导科学家使用死信队列来检查无效的数据。稍后重新处理这些数据。
解析
AWS SQS死信队列(Dead-Letter Queue, DLQ)用于存储无法被消费者正确处理的消息。题目中应用程序处理失败时,消息保留在原队列可能导致无限循环或被删除。通过配置最大接收数(maxReceiveCount)为1,当消息第一次处理失败后会被自动路由到DLQ。死信队列允许独立存储和访问失败消息,避免阻塞原队列。AWS官方文档指出,DLQ是处理失败消息的标准做法,无需自定义逻辑或手动干预。选项C直接利用SQS原生功能实现需求,而其他选项引入了额外服务(如S3、EventBridge)或非标准方案(虚拟队列),增加了复杂性和维护成本。