概要
alexaスキルで色々試してみたい。
雛形のサンプルアプリを量産して、改造を加えていきたい。
というわけで、デプロイまでの初期構築をできるだけ簡単に行う方法をまとめます。
手動でやるとブラウザを行ったり来たりでちょっと大変。
- alexaのdeveloperコンソールでスキルを作成
- awsのコンソールでlambdaを作成
- alexaのコンソールに戻って、lambdaの設定を追加
利用するコマンド
- serverless framework (1.38.0)
- awscli (1.16.100)
- jq
手順
準備
Alexa Skills Kit開発者コンソール でスキルの作成を行い、Skill IDをコピーしておく。
$ export SKILL_NAME=testtest
$ export ALEXA_SKILL_ID="amzn1.ask.skill.xxxxx"
プロジェクト作成
宇宙の豆知識(日本語) を少し修正したテンプレートを利用。
// プロジェクトの作成
$ ask new --skill-name $SKILL_NAME --url https://github.com/tekutoo/skill-sample-nodejs-fact.git
$ cd $SKILL_NAME
// Skill IDを置換
$ find . -name '*config' -o -name '*serverless.yml' | xargs sed -i "" -e "s/__ALEXA_SKILL_ID__/$ALEXA_SKILL_ID/g"
// lambdaをデプロイ
$ cd lambda/custom
$ sls deploy
// lambdaのARNを取得 && 置換
$ cd -
$ export LAMBDA_ARN=`aws lambda get-function --function-name skill-sample-nodejs-fact-dev-main --region ap-northeast-1 | jq .Configuration.FunctionArn -r`
$ find . -name 'skill.json' | xargs sed -i "" -e "s/ask-custom-$SKILL_NAME-default/$LAMBDA_ARN/g"
// alexa skillをデプロイ
$ ask deploy
動作確認
$ ask simulate -l 'ja-JP' -t '宇宙の豆知識を開いて'
参考文献
その他
スキルの作成も $ ask api create-skill -f skill.json
でできるようですが、あらかじめlambdaを用意しておかないといけないさそうで、ここだけは手動でやってます。