处理 SQS 事件的函数的预期响应是什么?
What is the expected response from a function that handles an SQS event?
我有一个使用 node12 运行时在 javascript 中编写的 AWS lambda 函数。如果我未能处理 sqs 事件中给出的消息,我如何告诉队列我无法处理消息并将消息留在队列中?
它是否需要带有状态代码的 http 响应,如 200
表示成功或 500
表示失败,或者 lambda 是否需要抛出错误以表明它没有处理。
我在 sqs 事件处理函数中找不到预期的响应。 return 的处理程序是什么?
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 中的错误处理,并对不同场景进行了很好的细分。
我有一个使用 node12 运行时在 javascript 中编写的 AWS lambda 函数。如果我未能处理 sqs 事件中给出的消息,我如何告诉队列我无法处理消息并将消息留在队列中?
它是否需要带有状态代码的 http 响应,如 200
表示成功或 500
表示失败,或者 lambda 是否需要抛出错误以表明它没有处理。
我在 sqs 事件处理函数中找不到预期的响应。 return 的处理程序是什么?
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 中的错误处理,并对不同场景进行了很好的细分。