AWS Lambdaをアップロードする

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

でアップロードできます。