Serverless Frameworkやaws-sam-localを利用する方法もありますが、そんなに複雑じゃないコードは下記のようにテストするのがいいようです。
方法
lambda用コード
必要に応じていろいろ書く。でも、このコードは実行できない(できるけどテストできない)。
index.js
exports.handler = (event, context, callback) => {
console.log("foo");
callback(null,"hoge");
}
テスト用コード
index.jsを呼び出してやるだけだけど、最低限のお作法に従う。
local.test.js
//require
const lambda = require('./index.js');
//とりあつ空っぽで(設定も可能)
const event = "";
const context = "";
//callackの定義
function callback(error, result){
//まあ、書かなくても大丈夫
if(typeof error !== 'null'){
console.error(result);
process.exit(1);
}
//出力(ここがメイン)
console.log(result);
process.exit(0);
}
//呼び出し
lambda.handler(event, context, callback);
ローカルでのテスト
ローカルでの確認時はlocal.test.jsを呼び出す(ファイル名は何でも)。
node local.test.js
zipする
全部zipしてアップしても問題ないと思いますが、local.tset.jsを除いてzip。後はアップロードするだけ。
zip -r test.zip index.js node_modules