Exploring The AWS Lambda Runtime Environmentが興味深かったので、任意のコマンドを実行してみた。
lambchopで以下のtest.js
を実行。
#!/usr/bin/env lambchop /* function_name: test role: arn:aws:iam::123456789012:role/lambda_exec_role handler: test.handler timeout: 60 */ exports.handler = function(event, context) { var child_process = require('child_process'); child_process.exec(event.cmd, function(err, stdout, stderr) { if (!err) { console.log(stdout); console.log(stderr) } else { console.log(err); } context.done(); }) };
コマンド名をイベントで投げる。
echo '{"cmd":"ls -la ."}' | lambchop-cat test
実行結果は以下の通り。
START RequestId: 761f28d6-7495-11e4-b6bc-3f8a8cf5cac4 2014-11-25T11:23:29.199Z 761f28d6-7495-11e4-b6bc-3f8a8cf5cac4 2014-11-25T11:23:29.198Z 761f28d6-7495-11e4-b6bc-3f8a8cf5cac4 total 12 drwxr-xr-x 2 slicer 497 4096 Nov 25 03:23 . drwxr-xr-x 19 root root 4096 Nov 12 19:37 .. -rw-r--r-- 1 slicer 497 299 Nov 25 2014 test.js END RequestId: 761f28d6-7495-11e4-b6bc-3f8a8cf5cac4 REPORT RequestId: 761f28d6-7495-11e4-b6bc-3f8a8cf5cac4 Duration: 399.98 ms Billed Duration: 400 ms Memory Size: 128 MB Max Memory Used: 10 MB