表題の通り。`npm deploy`コマンドを設定してしまっているというお話。
■ 環境
- AWS Lambda
- node v4.4.7
- Mac OSX El Capitan
■ きっかけ
ServerlessFrameworkとかを使っていない環境で、Lambdaに簡易的にデプロイしたいなと思った時に、”package.json“に1行加えてデプロイをしている。いや、ServerlessFrameworkとかも使ったことすらないけど…。
■ AWS Lambda
各種設定等は”Management Console“で先にやってしまっている。そこでARNを取得する。
AWS Lambda > Functions > Function選択 > Actions > Show ARN
ここで得られた”ARN“を元にコマンドを設定する。
■ pakcage.json
{
"name": "test",
"version": "0.0.1",
"description": "test test test.",
"main": "index.js",
"scripts": {
"zip": "zip -r test.zip index.js node_modules",
"update": "aws lambda update-function-code --function-name arn:aws:lambda:ap-northeast-1:XXXXXXXXXXX:function:test --zip-file fileb://`pwd`/test.zip --publish",
"deploy": "npm run zip && npm run update"
},
:
}
上記のような”scripts“を追加している。後は実行するだけでOKである。
$ npm run deploy
当初はかなり適当に設定してみたのだが、意外と使えたので最近はもっぱらこれを使用している。
以上。