いつの間にかVersion2が出てた。
alexa-sdkからask-sdkに変わってた。
ということで、せっかくなので対応したLambda関数を作ってみようと思ったのだが、SDKを取得するのに相変わらずLinux環境が要るのだ。
簡単にできますよぉ~などという謳い文句とは裏腹に面倒なのだ。
しかし、普段Linuxを使うことのない私にとっては「いい勉強だ」などと半分自分に嘘をつきながら、SDKを取得してみた。
Linuxの環境はAWS EC2インスタンスで用意。
AWSのEC2(Amazon Linux)が便利なところは、ブラウザ上でコマンドが打てる点だ。気が利いている。
(とはいうものの、ブラウザを放置していると、コマンドが打てなくなるという不具合なのか、セッション切れなのかよくわからない現象が起こるので注意が必要。)
起動したら、npmまで入ってない・・・トホホ。
しょうがないからいろいろ入れることに。
※ここから下のコマンドは、上記の通りEC2インスタンス(Amazon Linux)をブラウザでコマンド実行例。
-
NodeBrewのインストール
-
NodeBrewはNode.jsのバージョン切替用ツールらしい。そして、NodeBrewを使ってNode.jsのいろんなバージョンを取得し、バージョン切替が簡単にできるのである。
すごいなぁ・・・などと感心。curl -L git.io/nodebrew | perl - setup export PATH=$HOME/.nodebrew/current/bin:$PATH source ~/.bashrc nodebrew help
で、NodeBrewのヘルプが見られたら、NodeBrewのインストールは完了。これでnpmも入る。
-
Node.jsのインストール
-
ここではversion8で利用予定のversion8.10.*のインストールを行う。
nodebrew install v8.10 nodebrew use v8.10 node -v
インストールして、8.10のバージョンを使うよ!と宣言後、nodeコマンドでインストールしたNode.jsのバージョンを確認。
-
ask-sdkをnpmを使ってインストール
-
npm install ask-sdk npm install ask-sdk-v1adapter npm install ask-sdk-core npm uninstall aws-sdk
上は例。要らないものは入れなくていい。取得したモジュールはすべてnode_modulesフォルダ内に入る。
AWS-SDKがあると容量が増えてLambda関数にアップロードできなくなるので、削除しておくこと。 -
ask-sdkをZip圧縮後、S3へアップロード
-
cd ./ zip -r alexa_ask_sdk.zip node_modules
上の階層に行って、node_modulesフォルダを丸ごとZIP圧縮。
Zipの中身を確認するときは、以下のようにless文を使う。less alexa_ask_sdk.zip
(コマンド終了は:q)
次はS3へアップロード。これはAWS CLIを使う。
{****}はバケット名。aws s3 cp alexa_ask_sdk.zip s3://{****}/alexa.zip
S3にアップロードしたzipをLambda関数の関数コードのところで取り込めば、ようやくコードの編集が始められる。
続きは(2)へ。