pict3の日記

AWSネタを中心に

fluctでお手軽!EC2レスなAWS(API Gateway + Lambda)〜モジュール使う編【cloudpack 大阪 BLOG】

f:id:pict3:20150831125448p:plain

今回も、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

 

f:id:pict3:20150903195511p:plain

今度はうまく行った模様です!!

fluctにて外部モジュールを使用する場合は、呼び出し元アクションの配下にnode_modulesを置くことで、圧縮ファイルに追加されるようです。

 

おまけ情報

fluctには、デプロイせずともローカルでお試しする機能もあります。

$ fluct server
Server starting on http://127.0.0.1:3000
Loading event

コンソール出力も容易に見れるので、デバッグには便利!