AWSアカウント作成からAlexaアプリを作るまでの話
Alexaアプリを作る?
n番煎じではありますが、せっかくAlaxaを持っているのにサザンオールスターズを部屋で流すことにしか使っていなかったので使ってみたいと思います。 ググるとたくさん出て来て、さらにamazonに記載のあるトレーニングでつまるところなくサンプルが動いたので、リンク貼ります。
Alexaスキル開発トレーニングシリーズ 第1回 初めてのスキル開発 : Alexa Blogs
じゃあお前何やんの?
サンプルを動かすところまでは本当に何もせずにできてしまったので、サンプルにオリジナリティを出すということをやろうということにしました。
具体的には、lambdaにアップロードするzipの中身をいじって、挙動を変えたいと思います。
(と言ってもいじったのはサンプルのzipのindex.jsだけ)
サンプルから変更した時に詰まったところ
色々サンプルから変えて、ちょっとググりが必要だったところを恥ずかしいですが、書きます。
変更してzipにしてアップロードしたものが動かない
サンプルのzipを変更し、zipしてlambdaにアップロードする必要があるのですが、それをする際にちょっと詰まりました。
zipのアップロード後にAWSコンソールからlambdaのテストをした際にindex.jsしか変更していないつもりなのに、以下のようなエラーが出ました。
{ "errorMessage": "Cannot find module '/var/task/index'", "errorType": "Error", "stackTrace": [ "Function.Module._load (module.js:276:25)", "Module.require (module.js:353:17)", "require (internal/module.js:12:17)" ] }
結論を言うと、zipの仕方に問題がありました。
macbookのfinderから右クリックでzipにしていたのですが、そうすると右クリックしたフォルダもzipに含まれてしまうので
lambda_hoeghogeのフォルダの中にterminalで入って
zip -R ../lamnda_hogehoge.zip *
でできたファイルをlambdaにアップロードすることで解決できました。
初歩的と言うか、lambdaにどんなzipを食わせてるのかを考えていなかったことがバレてしまうエラーでした。。。
スキルの呼び出し名を変更しても。反映されない
alexa developer consoleから呼び出し名を変更して、ビルドしても変更されなくて焦りました。
呼び出し名を変更したい場合には、変更後、変更を保存してからビルドしなくてはなりません。
ビルドする際に勝手に保存してくれると思ったのですが、そうではないようです。
今回作ったスキル
公開してみました。(現在審査中です。審査通ったら更新するかも)
なんともないアプリですが、自分が作ったもののアウトプットが音声で返ってくるのは嬉しいものですね。
スキルを一つでも公開するとawsで使えるプロモコードがもらえるようなので、それも嬉しいです。
あとでやってみようと思います。