मैं एडब्ल्यूएस लैम्डा पर तैनात एक्सप्रेस फ्रेमवर्क के साथ mysql2 पैकेज का उपयोग कर रहा हूं। मेरे पास एडब्ल्यूएस लैम्ब्डा के लिए प्रावधानित समरूपता 3 पर सेट है।
मैं सीधे MySQL से कनेक्ट नहीं हो रहा हूं। मेरे पास बीच में आरडीएस प्रॉक्सी है।
मुझे निम्न त्रुटि मिल रही है, बेतरतीब ढंग से।
{
"errorType": "Error",
"errorMessage": "connect ETIMEDOUT",
"code": "ETIMEDOUT",
"errorno": "ETIMEDOUT",
"syscall": "connect",
"fatal": true,
"stack": [
"Error: connect ETIMEDOUT",
" at Connection._handleTimeoutError (/var/task/node_modules/mysql2/lib/connection.js:178:17)",
" at listOnTimeout (internal/timers.js:554:17)",
" at processTimers (internal/timers.js:497:7)"
]
}
मेरा कोड इस तरह दिखता है:
var AWS = require("aws-sdk");
const mysql = require('mysql2');
class DBConnection {
constructor() {
var signer = new AWS.RDS.Signer({
region: 'us-east-1',
hostname: process.env.DB_HOST,
port: 3306,
username: process.env.DB_USER
});
let connectionConfig = {
host: process.env.DB_HOST,
user: process.env.DB_USER,
database: process.env.DB_NAME,
ssl: 'Amazon RDS',
authPlugins: { mysql_clear_password: () => () => signer.getAuthToken() }
};
this.db = mysql.createConnection(connectionConfig);
}
query = async (sql, values) => {
return new Promise((resolve, reject) => {
this.db.execute(sql, values, (error, result) => {
if (error) {
reject(error);
return;
}
resolve(result);
});
});
}
}
module.exports = new DBConnection().query;
const results = await query('SELECT COUNT(*) AS total_listens FROM analytics WHERE event_name="PLAYED"');
कोई सुराग जहां मुद्दा हो सकता है?
1 उत्तर
AWS Lambda function
के साथ mysql.createconnection
के बजाय mysql.createPool
का उपयोग करना बेहतर है। मुझे नहीं पता कि इसका विशिष्ट कारण क्या है, लेकिन mysql.createPool
के बजाय mysql.createconnection
का उपयोग करने से मेरे लिए भी समस्याएँ उत्पन्न हुई हैं। क्वेरी के सफल होने पर कनेक्शन release
के लिए भी आवश्यक है।
संबंधित सवाल
नए सवाल
node.js
Node.js एक घटना-आधारित, गैर-अवरोधक, अतुल्यकालिक I / O रनटाइम है जो Google के V8 जावास्क्रिप्ट इंजन और libuv लाइब्रेरी का उपयोग करता है। इसका उपयोग उन अनुप्रयोगों को विकसित करने के लिए किया जाता है जो क्लाइंट पर और साथ ही सर्वर साइड पर जावास्क्रिप्ट को चलाने की क्षमता का भारी उपयोग करते हैं और इसलिए कोड के पुन: प्रयोज्य और संदर्भ स्विचिंग की कमी से लाभान्वित होते हैं।