2016-04-13 20 views
2

"felixge/node-mysql"パッケージを使用して、LambdaでホストされているnodejsコードからAmazon RDS(MySQL)インスタンスに接続しようとしています。私が間違っていることを知るためには助けが必要です。私は "接続ETIMEDOUT"エラーを取得しています。私のコードはLambdaでホストされていて、LamdaとRDSは同じアカウントと地域です。また、RDSFullAccessポリシーをIAMロールに添付しました。 RDSインスタンスは、すべてのIP(ホワイトリスト/ブラックリストに登録されていないIP)からアクセスすることもできます。node-mysqlからAmazon RDS(MySQL)に接続する際のエラー

同時に、私は自分のローカルMySQL Workbenchから同じ資格情報で接続することができます。

var connection = mysql.createConnection({ 
     host  : 'xxxxxxxx.crhmtrscnbgt.us-east-1.rds.amazonaws.com', 
     user  : 'my_user', 
     password : 'my_passowrd', 
     database : 'my_db', 
     port  : '3306', 
     debug : true 
}); 

connection.connect(function(err) { 
     if (err) { 
       console.error('error connecting: ' + err.stack); 
       return; 
     } 
     console.log('connected as id ' + connection.threadId); 
}); 

var query = "SELECT * FROM users";    

connection.query(query, function(err, rows) {     
     if (err) throw err;     
     console.log(rows); 
}); 

出力は次のとおりです:

2016-04-12T13:32:34.367Z fa04401a-00b2-11e6-9a23-2dd70e33cc5d error connecting: Error: connect ETIMEDOUT 
at Connection._handleConnectTimeout (/var/task/node_modules/mysql/lib/Connection.js:412:13) 
at Socket.g (events.js:180:16) 
at Socket.emit (events.js:92:17) 
at Socket._onTimeout (net.js:327:8) 
at _makeTimerTimeout (timers.js:438:11) 
at Timer.unrefTimeout [as ontimeout] (timers.js:502:5) 
-------------------- 
at Protocol._enqueue (/var/task/node_modules/mysql/lib/protocol/Protocol.js:141:48) 
at Protocol.handshake (/var/task/node_modules/mysql/lib/protocol/Protocol.js:52:41) 
at Connection.connect (/var/task/node_modules/mysql/lib/Connection.js:123:18) 
at Object.Workout.save (/var/task/storage.js:32:24) 
at Object.storage.saveWorkout (/var/task/storage.js:62:28) 
at intentHandlers.NewExcerciseIntent (/var/task/intentHandlers.js:19:17) 
at AlexaSkill.eventHandlers.onIntent (/var/task/AlexaSkill.js:65:27) 
at AlexaSkill.requestHandlers.IntentRequest (/var/task/AlexaSkill.js:28:37) 
at AlexaSkill.execute (/var/task/AlexaSkill.js:105:24) 
at exports.handler (/var/task/index.js:9:19) 

答えて

0

が、私はそれを修正

は、ここに私のコードです。この問題は、ラムダ関数の設定でのタイムアウト設定で起こりました。それは3秒に設定されましたが、私のスクリプトは実行に10秒以上必要でした。それが私がETIMEDOUTエラーを出した理由です。設定を30秒に変更しました。今問題はなく、すべて正常に動作します。

関連する問題