Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda超时,然后是连接错误_Amazon Web Services_Aws Lambda_Serverless Framework - Fatal编程技术网

Amazon web services AWS Lambda超时,然后是连接错误

Amazon web services AWS Lambda超时,然后是连接错误,amazon-web-services,aws-lambda,serverless-framework,Amazon Web Services,Aws Lambda,Serverless Framework,我有一个AWS Lambda,每五分钟运行一次。Lambda将创建到我的VPC内的RDS数据库的连接,并运行一些查询 Lambda将成功运行三次,大约15分钟左右,但随后出现超时错误: 任务在600.10秒后超时 在此超时错误之后,下次Lambda尝试运行时,我无法再连接到我的RDS数据库。我得到以下超时错误: 错误:连接ETIMEDOUT 在这一点上,我感到非常困惑,我需要更多的关注: 'use strict'; const mysql = require('mysql'); const u

我有一个AWS Lambda,每五分钟运行一次。Lambda将创建到我的VPC内的RDS数据库的连接,并运行一些查询

Lambda将成功运行三次,大约15分钟左右,但随后出现超时错误:

任务在600.10秒后超时

在此超时错误之后,下次Lambda尝试运行时,我无法再连接到我的RDS数据库。我得到以下超时错误:

错误:连接ETIMEDOUT

在这一点上,我感到非常困惑,我需要更多的关注:

'use strict';

const mysql = require('mysql');
const util = require('util');

const {
  fetchQuery, 
  insertQuery,
  updateQuery,
} = require('./queries');

const {
  getInsertValues, 
  getUpdateValues,
} = require('./utils');

const connection = mysql.createConnection({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
});

// node native promisify
const query = util.promisify(connection.query).bind(connection);

connection.connect();

module.exports.scan = async (event, context, callback) => {
  let results = await query(fetchQuery);

  console.log(`found ${results.length} forms that are scheduled to be filed`);

  if (results.length > 0) {
    const insertValues = getInsertValues(results);
    const updateValues = getUpdateValues(results);

    try {
      console.log(`creating user_tasks`);
      await query(insertQuery, [insertValues]);

      console.log(`updating next_scheduled dates`);
      await query(updateQuery, [updateValues]);

      callback(null, 'successfully updated form next_scheduled')
    } catch (err) {
      console.error('error creating user_tasks')
      callback(err, 'error creating user_tasks')
    }
  }
}

使用完数据库后,请尝试关闭与数据库的连接,我以前也遇到过类似的错误,因为打开的连接使Lambda保持活动状态,直到它超时为止

是的,这就是我所忘记的