fluctでお手軽!EC2レスなAWS(API Gateway + Lambda)〜モジュール使う編【cloudpack 大阪 BLOG】
今回も、fluct入門編です。
サンプルを教材に、もう少し凝ったことをしてみます。
外部モジュールの読み込み
サンプルにjadeを利用したshow_rootアクションから、show_application_cssアクションを呼び出すものがあります。
いろいろ便利そうなので、実装してみたいと思います。
cloneでもいいかもですが、若干フォーマットも変わっているので手動で必要箇所を更新していきます。
それぞれactionを定義して、デプロイ!
# fluct generate show_root # vi actions/show_root/index.js # vi actions/show_root/package.json # mkdir actions/show_root/views # vi actions/show_root/views/index.jade # fluct generate show_application_css # vi actions/show_application_css/index.js # vi actions/show_application_css/package.json # vi actions/show_application_css/application.css # fluct deploy
ブラウザでアクセスしてみると。。。
{errorMessage=Cannot find module 'jade', errorType=Error, stackTrace=["Function.Module._resolveFilename (module.js:338:15)","Function.Module._load (module.js:280:25)","Module.require (module.js:364:17)","require (module.js:380:17)","Object. (\/var\/task\/index.js:1:74)","Module._compile (module.js:456:26)","Object.Module._extensions..js (module.js:474:10)","Module.load (module.js:356:32)","Function.Module._load (module.js:312:12)","Module.require (module.js:364:17)"]}
失敗(゚´Д`゚)゚
jadeモジュールの読み込みに失敗しているようです。
var jade = require('jade');
その場合は、リソースのディレクトリに入って、npmでインストールしましょう。
# cd actions/show_root/ # npm install jade
node_modulesディレクトリ配下にjadeディレクトリが作られることで、lambda.zipに含まれるようになります。
ふたたび、デプロイ!
# cd actions/show_root/ # npm install jade
今度はうまく行った模様です!!
fluctにて外部モジュールを使用する場合は、呼び出し元アクションの配下にnode_modulesを置くことで、圧縮ファイルに追加されるようです。
おまけ情報
fluctには、デプロイせずともローカルでお試しする機能もあります。
$ fluct server Server starting on http://127.0.0.1:3000 Loading event
コンソール出力も容易に見れるので、デバッグには便利!