Middy 框架让我的 AWS Lambda 挂起,因此它永远不会返回响应

我有这样的 NodeJS 12.x Lambda,并且我正在使用 middy.js 连接到 RedShift 集群,这是摘录:


const middy = require('@middy/core')

const dbManager = require('@middy/db-manager');


const lambda = middy(async (event, context) => {

    const { db } = context;

    const records = await db.distinct('XXX').from('YYY');


    // print result

    console.log(records);


    // return result

    return {

        'statusCode': 200,

        'body': JSON.stringify(records)

    }

});


lambda    

    .use(dbManager({

        config: {

          client: 'pg',

          connection: {

            host: 'XXX',

            port: '1111',

            schema: 'public',

            user: 'XXX',

            password: 'XXX',

            database: 'XXX'

          }

        }

    }));


module.exports = { lambda }

当我运行这个 Lambda 时,将检索结果(即console.log打印出结果),但该函数保持挂起状态,直到它没有达到超时。我很确定我错过了异步/等待机制的一些东西,但我不知道我必须改变什么以及在哪里改变。


Qyouu
浏览 182回答 1
1回答

梵蒂冈之花

解决方案是设置context.callbackWaitsForEmptyEventLoop = false.这可以通过使用名为DoNotWaitForEmptyEventLoop的 Middy 中间件来完成
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript