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色々調べたのですが、原因は以下何種あります。
- 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 件のコメント:
コメントを投稿