Q59 — AWS DVA-C02 第3章
第 59/100 题 | ← 返回第3章
伊家交司有伊个AWS Lambda 函数,付使用Amazon SQS API 封Amazon Simple Queue Service (Amazon SQS )队列中读取消息。条于背精远依赖项的随机故障,Lambda 函数未成功处理拍有消息。开发按商要吉结Lambda 函数的可靠考,使得FLambda 函数能够在背精远依赖卖败的情况药成功处理每由消息。 据种解相远案将以最洋的努力满梦散要求?
- A. 将对第三方依赖项的调用移动到异常处理块中。如果在异常处理程序中捕获到第三方依赖项中的故障,则将消息写回SQS队列。
- B. 更新Lambda 函数中的代码以删除对SQS SDK ReceiveMessage 函数的调用。配置Lambda 函数以使用SQS队列作为事件源。将SQS队列的重新驱动策略的maxReceiveCount 值至少设置为5。
- C. 创建第二个SQS队列用作死信队列。在原来的SQS队列上配置redriver 策略,将失败的消息发送到死信队列。修改Lambda 函数以从两个队列读取消息。
- D. 创建第二个SQS队列用作死信队列。将对第三方依赖项的调用移动到异常处理块中。如果在异常处理程序中捕获到第三方依赖项中的失败,则将消息写入死信队列。 ✓
正确答案: D. 创建第二个SQS队列用作死信队列。将对第三方依赖项的调用移动到异常处理块中。如果在异常处理程序中捕获到第三方依赖项中的失败,则将消息写入死信队列。
解析
为了以最少努力提高Lambda函数的可靠性,并确保在第三方依赖失败时消息能被成功处理,最佳实践是结合异常处理和死信队列。选项D恰好满足了这两个条件:首先,它将对第三方依赖的调用置于异常处理块中,确保在依赖失败时能捕获异常;其次,它将失败的消息写入死信队列,这样即使主逻辑失败,消息也不会丢失,可以在后续进行重试或分析。这种方法既保证了消息的可靠性,又简化了代码逻辑,因此是最佳选择。 【灯笼考证提供:swufelp1999】