AWS覚書 Lambda関数を作る(1)~Alexa SDK for Node.js v2

いつの間にか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)へ。

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください