Nodejs sample code
var mysql = require('mysql');
exports.handler = function(event,context){
var connection = mysql.createConnection({
host : 'xxx.xxx.eu-west-1.rds.amazonaws.com', //RDSのエンドポイント
user : 'xxxxxx', //MySQLのユーザ名
password : 'xxxxxx', //MySQLのパスワード
database : 'xxxxxx'
});
connection.connect();
var name = event.Name
var email = event.Email
var birth = event.Birth
var insert_sql = "insert into User (Name, Email, Birth) value ('" + name +"','" + email +"','" + birth + "')"
connection.query(insert_sql, function(err, rows, fields) {
if (err)
{
console.log("--err");
console.log(err);
throw err;
}
});
connection.end(function(err) {
context.done();
});
}
Mac でコードをZIPする
$ mkdir lambda-func
$ cd lambda-func
$ brew install Nodejs
$ npm install mysql
$ ls
UpdateDB.js node_modules
$ zip -r lambda-func.zip UpdateDB.js node_modules/
Upload lambda-func.zip to lambda and set handler to UpdateDB.handler (UpdateDB.js + exports.handler)
Error
RequestId: 1682cd4d-dbea-11e6-81d7-03af694d0c84 Process exited before completing request
Process exited before completing requestのエラーがよく出ています。 色々調べたのですが、原因は以下何種あります。
- Time out DBに接続して処理に時間がかかった。
- Memory 割り当てるMemoryが足りなかった。
REPORT RequestId: 1682cd4d-dbea-11e6-81d7-03af694d0c84 Duration: 3658.20 ms Billed Duration: 3700 ms Memory Size: 128 MB Max Memory Used: 128 MB
解決策
[Configuration]タブでMemoryとTime outを上げる。他の原因かもしれません。ただ言えるのは、スクリプト内でどこかでエラーになって処理終わらなくてこのエラーが出力されていると言う感じです。DebugにConsole.logをこまめに使ってデバックしましょう
この記事がお役にたちましたらシェアをお願いします:)
0 件のコメント:
コメントを投稿