Lambdaに外部モジュールを組み込む方法
うわあああ!
また更新が滞ってやがるwwwww
ネタがなかったというのもありますが
ここのところ勉強だ資料作成やなんだかんだでドタバタしておりまして
更新できずにいました。
すみません。
さて、先日Alexa Hands-Onに参加した結果
Alexaのスキルを作る事にハマっておりまして
時間があれば黙々と作っているわけです。
そんななか、Lambdaを触り始めたわけですが
外部モジュールを読み込ませるにはどうすれば良いかでハマってしまいましたので
いろんなサイトを参考にしつつ、纏めてみました。
※参考サイト
https://dev.classmethod.jp/cloud/aws/1st-javascript-1st-lambda/
https://hacknote.jp/archives/12124/
前提OS:MacOS
1.Homebrewのインストール
$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.node.jsのインストール
$brew install node
3.インストールするモジュールの格納領域を作成し、カレントディレクトリを移動する
$mkdir lambdaExtModules $cd lambdaExtModules
4.モジュールをローカルにインストール
$npm install moment-timezone $npm install alexa-sdk $npm install aws-sdk
5.コーディングしたスクリプトとモジュールをZip化
$zip -r myfunc.zip alexa_enter_room.js node_modules
※ディレクトリ構造は以下の通り
lambdaExtModules
├alexa_enter_room.js
└node_modules
6.zipファイルを作成しているLambda 関数にアップロード
これで、外部モジュールを取り込んだ関数として登録でき
問題なく実行することができるようになりました。
設計図にないモジュールも組み込んだりしたい場合は
是非お試しあれ♪