2017年に Amazon Echo を手に入れた当初から
いつも聴いているPodcastがEchoで聴けるようになった最高だけど、自分でSkill実装したら実現できるのかな?
— snaka (@snaka) 2017年12月2日
と思っていて、この7月末ごろからAlexスキル開発はじめてやっとストアへの公開にこぎつけたのでその知見を少しづつ公開していこうと思う。1
システム構成
ポッドキャストを再生する Alexa スキルは以下のようなシステム構成となっている
当初は Lambda 1個でフィードの取得からそのフィードからURLを取り出して Echo にレスポンスを返すのまでやっていたが、ポッドキャストによってはフィードの読み込みに4~6秒程度待たされることがあり、無音状態で数秒待たされるとかなり不安になることがわかった。
そこで、フィードの取得とリクエストに対して音源のURLを返す部分を分離して、そのLambda間の中継兼キャッシュとして DynamoDB を利用する構成とした。
それによって、だいたい1秒以内でレスポンスを返せるようになった。2
index
今後、以下のような記事を順次アップする予定(長くなりそうなので個別に)
- Alexaスキルポリシーガイドラインへの対応
- AudioPlayer インターフェースに関する Tips
- ask-cli の Tips
- aws-sdk node v2 の Tips
- Alexa Skill のテスト
- Alexa Skill のバージョン管理
- X-Ray によるプロファイリングとパフォーマンス改善
- Alexa Skill の CI/CD
Alexa Skill を作ってみよう的な記事は多いと思うので、それ以外をテーマに書いていこうと思う。
ストアへのリンクとソースコード
公開したスキルへのリンクと Github で公開しているリポジトリへのリンクを貼っておく。
※以下の画像は Amazon のスキルストアへのリンクとなってます。
※以下のスキルは各配信者様の許諾を得て公開しているものですが、各配信者様はスキルの開発には関わっておりません。スキルに対する問い合わせは私(@snaka)までお願いします。
Turing Complete FM プレイヤー
Alexaスキル: https://www.amazon.co.jp/dp/B07GJSG572
GitHub: https://github.com/snaka/skill-tcfm-player
backspace.fm プレイヤー
Alexaスキル: https://www.amazon.co.jp/dp/B07H294SKT
GitHub: https://github.com/snaka/skill-backspace.fm