node.js - 处理 SQS 事件的函数的预期响应是什么?
问题描述
我有一个使用 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 重试逻辑开始起作用,因此您也需要了解这一点。这个页面讨论了 lambda 中的错误处理,并对不同的场景进行了很好的细分。
推荐阅读
- duplicates - 使用 VBA 删除重复项不仅可以删除重复项
- load-balancing - HaProxy ProxyProtocol 和 Varnish 没有响应
- sql - 在视图中添加 2 个计算字段的值以创建第三个计算列
- json - 如何更新 JSON 然后再次输出?
- ajax - 在 ajax 文件上传中获取响应
- javascript - 如何从 json 数据中显示 Reactjs 中的购物车项目?
- javascript - 使用 Sinon.js 模拟 Jquery 事件
- r - 在 by= 指标中将两个 data.tables 与 NA 合并
- haskell - 如何在 Haskell 中转换 [[Char]] -> Char?
- express - 反向代理背后的 keycloak-nodejs-connect express.js 应用程序