Función lambda:
const client = new Client({ user: 'postgres', host: 'rds_host', database: 'dbname', password: 'db_password', port: 5432 }); exports.handler = async (event, context, callback) => { try { await client.connect(); callback(null, "Connected Successfully"); } catch (e) { callback(null, "Error"); } }; Con este código, mi lambda siempre recibe un error de tiempo de espera, si me deshago de la línea cliente.connect() , funciona bien.
La parte interesante es que si agrego un client.query con INSERT , el comando funciona y la fila se crea en la base de datos, entonces, ¿por qué se agota el tiempo de espera cuando se agrega client.connect() y la conexión funciona?
Estoy bastante seguro de que cuando su función de controlador es async , espera que se resuelva una promesa, por lo que, en lugar de usar la devolución de llamada, simplemente return "Connected Successfully";
Enlace a documentos relevantes
Hay un ejemplo en este enlace donde hay un controlador asíncrono sin devolución de llamada.