第三方MYSQL上AWS Lambda上的连接超时序列

时间:2019-11-03 10:42:26

标签: amazon-web-services aws-lambda

我已经通过无服务器框架部署了lambda函数。当我在本地调用该函数时,它工作正常。但是在AWS Lambda环境中,它无法建立与remotemysql.com上托管的MYSQL的连接。每次都会给出超时错误。

试图增加超时时间,但无济于事

sequelize = new Sequelize(
    process.env.DB_NAME,
    process.env.DB_USER,
    process.env.DB_PASSWORD,
    {
        host: process.env.DB_HOST,
        dialect: "mysql",
        logging: false,
        connectTimeout: 60000
    }
);

sequelize
    .authenticate()
    .then(() => {
        logger.info("Database connection established");
        // do my work
        // some api calls to xys hosts outside servers
    })
    .catch(error => {
        logger.error("Database connection failed", {
            code: error.original.code,
            errno: error.original.errno
        });
        process.exit(1);
    });

我的函数不在任何VPC内,并且允许访问互联网,因为我已验证它正在返回对AWS以外的其他服务所做的API响应。

我不确定是否是因为TCP连接或其他原因。

请告知

1 个答案:

答案 0 :(得分:0)

好的,所以我已经弄清楚了导致问题的原因。这不是因为连通性,而是异步处理程序有问题。

我的处理程序就像

exports.handler = async () => { ... }

我删除了async,现在一切正常。