AWS Lambda node.jsのプログラムをローカルで実行する

AWS Lambdaで実行するためのnode.jsプログラム。
ローカルで開発したものをそのままアップロードして使いたい。

良い案がないか考えてみました。


exports.handler



Lambdaにアップロードするプログラムは、エントリーポイントとして
exports.handler
を用意しないといけません。

じゃあ、exports.handlerを呼び出す代理のプログラムを用意して、デバッグ実行すれば
実行確認済のプログラムをそのまま使えるのでは?

踏み台にするプログラムを「proxy.js」
Lambdaに登録するためのプログラムは適当なディレクトリの中に
「index.js」を用意し、記載することにします。

904_01.png


・proxy.js


  1. // index.jsを呼び出す踏み台
  2. 'use strict'
  3. const lambda = require('./sample/')
  4. let event = {'alias':'debug'};
  5. let context = null
  6. let callback = (err) => {
  7.     console.log(err)
  8. }
  9. // lambdaのエントリーポイントを呼び出し
  10. lambda.handler(event, context, callback)




・index.js


  1. 'use strict'
  2. // lambdaに登録するプログラム
  3. exports.handler = (event, context, callback) => {
  4.     
  5.     console.log('hello, world!')
  6. }




実行


$ node proxy.js
hello, world!




これでそのまま使えるindex.jsができました。
多少開発しやすくなった気がします。


Ubuntu Server 18.04にnodejs 8.11.3 LTSと最新版(10.4.1)をインストール

Ubuntu 16.04で試したときと同じ手順が18.04でも使用できるか試してみました。
Ubuntu Server 16.04にnodejs 8.11.1 LTSと最新版をインストール

npmによるnode.jsのインストール



まず、パッケージ標準のnodejsとnpmをインストール。
※ここでインストールしたnodejsは後ほど削除します。npmが欲しい。


$ sudo apt update
$ sudo apt install -y nodejs npm



n packageをインストール


$ sudo npm cache clean
$ sudo npm install n -g
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
/usr/local/lib
└── n@2.1.12




n package を使ってnodeをインストールします。
この時、明示的にバージョンを指定して8.11.3 LTSをインストールしました。
「node」で実行できるようシンボリックリンクも作成しておきます。


$ sudo n 8.11.3
$ sudo ln -sf /usr/local/bin/node /usr/bin/node



バージョンを表示。
ちゃんと指定したバージョンになっていますね。


$ node -v
v8.11.3



最初にインストールしたパッケージ標準のnodejsとnpmは削除します。


$ sudo apt purge -y nodejs npm





バージョンの切り替え



最新の安定バージョンが使用したい時。


$ sudo n stable
$ node -v
v10.4.1



LTSに戻すときは、バージョンを明示してn packageを実行します。


$ sudo n 8.11.3
$ node -v
v8.11.3

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ