aws-lambda - 尽管 SQS 消息已由 lambda 处理,但它仍在传输中
问题描述
SQS 消息被 lambda 成功处理。这是处理然后执行回调的代码:
exports.handler = function(event, context, callback) {
handleSQSMessages(context,event, function () {
const response = {
statusCode: 200,
body: JSON.stringify({
message: 'SQS event processed.',
input: event,
}),
};
console.log ("OK DONE");
callback(null, response);
function handleSQSMessages(context, messages, callback) {
messages = messages.Records;
if (messages && messages.length > 0) {
messages.forEach(function(message) {
console.log(message);
//...
我看到 cloudwatch 打印出“OK DONE”消息。然而,SQS 使消息“处于飞行状态”(并且它永远处于飞行状态)。我的理解是,一旦发送成功响应,该消息将被自动删除。我的能见度计时器 = 10 分钟
解决方案
您似乎缺少一些右括号/花括号。处理程序回调是否在 handleSQSMessages 回调中被调用?缺少大括号很难说 - 但如果不是,那可能就是它失败的原因。
推荐阅读
- python - 'numpy.ndarray' 对象在 Ipython 控制台中不可调用
- ssl - Mosquitto SSL 证书验证失败
- windows - 通过 CLI 从 Admin CMD 执行文件
- javascript - 在没有angularfire的情况下以角度6初始化firebase
- typescript - 打字稿:使用条件映射键时获得正确的推理类型
- c++ - C ++我希望 fscanf 忽略换行符而不是其他空白字符
- python - 有什么好方法可以将 Spark RDD 的内容读入 Dask 结构
- java - Spring MVC @PathVariable 如何接收带有多个'/'的参数?
- android - 如何按下前台服务通知?
- gstreamer - GStreamer:计算接收到的视频帧/缓冲区中的延迟以检测 Tx 和 Rx 之间的通信延迟