Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

406
Vistas
¿Cómo hago consultas sql con nodejs en AWS lambda?
exports.handler = async (event) => { const sql = require('mssql'); let config = { user: "MyUsername", password: "MyPassword", server: "MyServer", port: 1433, options: { database: 'MyDatabase', encrypt: false, } }; sql.connect(config, (err) => { if (err) { console.log(err);} else { console.log('connected'); let request = new sql.Request(); const theQuery = "SELECT * FROM MyTable"; request.query(theQuery, (err, data)=> { if(err) { console.log(err); } else { console.log(data); } }) } }); };

Estoy tratando de hacer una consulta SELECCIONAR simple con esto, y parece funcionar bien cuando lo ejecuto localmente, pero cuando lo pruebo en Lambda, se agota el tiempo de espera. Tengo el lambda en la misma VPC que SQL Server, por lo que no es un problema de conexión. ¿Algunas ideas?

 2022-07-17T03:10:02.912Z a4775342-517a-4511-920e-46269ee07627 INFO ConnectionError: Failed to connect to ********:1433 in 15000ms at /opt/nodejs/node_modules/mssql/lib/tedious/connection-pool.js:70:17 at Connection.onConnect (/opt/nodejs/node_modules/tedious/lib/connection.js:1051:9) at Object.onceWrapper (node:events:642:26) at Connection.emit (node:events:527:28) at Connection.emit (node:domain:475:12) at Connection.emit (/opt/nodejs/node_modules/tedious/lib/connection.js:1079:18) at Connection.connectTimeout (/opt/nodejs/node_modules/tedious/lib/connection.js:1284:10) at Timeout._onTimeout (/opt/nodejs/node_modules/tedious/lib/connection.js:1229:12) at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7) { code: 'ETIMEOUT', originalError: ConnectionError: Failed to connect to ********:1433 in 15000ms at Connection.connectTimeout (/opt/nodejs/node_modules/tedious/lib/connection.js:1284:26) at Timeout._onTimeout (/opt/nodejs/node_modules/tedious/lib/connection.js:1229:12) at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7) { code: 'ETIMEOUT', isTransient: undefined } }
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Resulta que el guión simplemente está terminando antes de terminar. Para arreglar esto, tuve que devolver una promesa.

 exports.handler = async (event) => { const promise = new Promise(function(resolve, reject) { let sql = require('mssql'); sql.connect(config, (err) => { if (err) { reject(err); } else { const request = new sql.Request(); const query = "SELECT * FROM MyTable"; request.query(query, (err, result) => { if(err) { reject(err); } else { resolve(result); } }); } }); }); return promise; };
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda