Lambchop v0.1.0

f:id:winebarrel:20150719140622p:plain

世間様はLamb段階になったらしいので、AWS Lambda便利実行ツール Lambchop のv0.1.0をリリースしました。

https://github.com/winebarrel/lambchop

これは何?

AWS LambdaのFunctionを手元で動かしているっぽく見せるツールです。

以下のようなシーバンとマジックコメント入れておくと、ローカルスクリプトのようにLambda Functionを登録→ログをtailできます。

#!/usr/bin/env lambchop
/*
role: arn:aws:iam::822997939312:role/lambda_basic_execution
handler: test.handler
*/
console.log('Loading event');

exports.handler = function(event, context) {
    console.log('value1 = ' + event.key1);
    console.log('value2 = ' + event.key2);
    console.log('value3 = ' + event.key3);
    context.succeed('Hello world!');
};

詳細はデモを参照をば。 asciicast

v0.0.13からの変更点

  • もろもろBug Fix
  • aws-sdk v2.1にした
  • 戻り値のサポート
  • lamchop-catのオプションを増やして、非同期実行・DryRun・Tailモードなどをサポート

戻り値のサポート

「ねんがんのもどりちをてにいれたぞ」なので、サポートしました。

具体的にはlamchop-catinvoke_asyncの代わりにinvokeを呼び出すようにしました。

特にオプションを指定しなければ、payloadに戻り値が入ります。

$ echo '{"key1":100, "key2":200, "key3":300}' | lambchop-cat test
---
status_code: 200
function_error:
payload: '"Hello World"'

非同期実行は-t eventオプションをつけるとできます。

$ echo '{"key1":100, "key2":200, "key3":300}' | lambchop-cat test -t event
---
status_code: 202
function_error:
payload: ''

Tailモード

invokeがTialっぽいモードをサポートしたのでlambchop-catも対応しました。

$ echo '{"key1":100, "key2":200, "key3":300}' | lambchop-cat test -l tail
status_code: 200
function_error:
payload: '"Hello world!"'
log_result: |-
  2014-11-23T08:06:53.212Z  xxxxxxxxxxxxxxxx  Loading event
  START RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  2014-11-23T08:06:53.330Z  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  value1 = 100
  2014-11-23T08:06:53.330Z  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  value3 = 300
  2014-11-23T08:06:53.330Z  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  value2 = 200
  END RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  REPORT RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  Duration: 117.54 ms Billed Duration: 200 ms   Memory Size: 128 MB Max Memory Used: 9 MB

DryRun

invokeがDryRunをサポートしたのでlambchop-catも対応しました。役に立つかはわかりません。

$ echo '{"key1":100, "key2":200, "key3":300}' | lambchop-cat test -t dry_run
---
status_code: 204
function_error:
payload: ''

フィードバックをお待ちしています。 どうぞご利用ください m(_ _)m