Lambda用のプログラムをローカルでテスト実行する方法(簡単編)

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

参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.