我有一个使用node12运行时用JavaScript编写的AWS lambda函数。如果我无法处理sqs事件中给出的消息,如何告诉队列我无法处理消息并将消息留在队列中?
它是否需要http响应,并带有状态码(例如200
)或500
(失败),或者lambda是否需要抛出错误以表示未处理,因此是否需要响应。
我在sqs事件处理函数中找不到预期的响应。处理程序期望返回什么?
async function handler(event) {
try {
const body = event.Records[0].body;
// do some process
// what do I return if successful
} catch (err) {
// what do I return if my process wasn't successful
}
}
最佳答案
这个简单的答案是,您抛出一个错误,它将认为失败。当然,随后lambda重试逻辑开始起作用,因此您也需要了解这一点。 This page讨论了lambda中的错误处理,并对不同情况进行了很好的细分。