尽管已由 lambda 处理,SQS 消息仍在传输中

Sid*_*Ram 6 amazon-sqs aws-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);
       //...
Run Code Online (Sandbox Code Playgroud)

我看到 cloudwatch 打印出“OK DONE”消息。然而,SQS 将消息置于“飞行中”(并且它永远保持在飞行中)。我的理解是,一旦发送成功回复,该消息将被自动删除。我的能见度计时器 = 10 分钟

est*_*r h 0

您似乎缺少一些右括号/大括号。处理程序回调是否在handleSQSMessages 回调中被调用?很难判断缺少大括号 - 但如果没有,这可能就是它失败的原因。