Lambdaで外部のライブラリを使おうとするとzip圧縮してアップする必要があります。
毎回ブラウザからアップするのはめんどすぎるのでコマンドラインで完結させます。
Lambdaの関数名: TestFunction
とします。
vim TestFunction.js
var AWS = require('aws-sdk'); var util = require('util'); var async = require('async'); // outside module exports.handler = function(event, context) { context.succeed("TestFunction success"); };
mkdir target npm install async npm install aws-sdk
vim archive.sh
SCRIPT_PATH=`echo $(cd $(dirname $0);pwd)` cd $SCRIPT_PATH NAME="TestFunction" rm -rf target/* zip -r target/${NAME}.zip ${NAME}.js node_modules
vim upload.sh
#!/bin/sh NAME="TestFunction" aws lambda update-function-code --function-name $NAME --zip-file fileb://target/${NAME}.zip
./archive.sh;./upload.sh
でアップロードできます。