HaneCa

独り立ちへ向けた長い道

AWS Lambdaに1コマンドでnode.jsのローカルプロジェクトを設置する方法

投稿日: 2018年8月15日 最終更新日: 2019年1月1日

AWS Lambda関数の開発をしていると、いちいちZipファイルを作成して、Webコンソールから作成したプログラムを設置することが、とても手間に感じられます。

これを解決する方法として、Lambda用にnode.jsで作成した関数を1コマンドで設置まで完了するように、package.jsonにコマンドを定義する方法が考えられます。

package.jsonには、scriptsという項目を儲けることができ、そこでコマンドを定義することができます。そこに次のようにそれぞれの処理を個別に作成し、最後にそれをまとめて実行する処理を作成します。

{
  ...
  "scripts": {
    // package.jsonと同じフォルダにあるindex.jsとnode_modulesフォルダを含めるzipファイルを作成する
    "zip": "zip -r lambda.zip index.js node_modules",
    // 作成したzipファイルを特定のlambda関数へアップロードし、関数をアップデートする
    "update": "aws lambda update-function-code --publish --function-name arn:aws:lambda:ap-northeast-1:xxxxxxxxx:lambda --zip-file fileb://`pwd`/lambda.zip",
    // これらの2つのコマンドを連続して実行する
    "deploy": "npm run zip && npm run update"
  },
  ...
}

このようにすることで、「npm run deploy」とコマンドを実行するだけで、必要なファイルを含めるzipファイルを作成し、特定のlambda関数にアップロードする処理を実行できます。

ちなみに、ここで作成したupdateコマンドは、既存のlambda関数のコードを置き換えるだけで、新たにlambda関数を作成するわけではないことに、注意が必要です。

参考サイト

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください