これまで、基礎トレーニングシリーズでは、実は Alexa-hosted スキル という仕組みを使って、バックエンドのコードを作る方法を紹介していました。 Alexa-hosted スキルは、スキル開発入門の方が手軽に試せるという利点がある反面、次のような制限もあります。
コードの編集は、開発者コンソール内のコードエディタで行うことになります。 外部エディタの利用、Git 等を利用した履歴管理やチームとのコード共有、TypeScript の利用などビルドプロセスが必要な場合は、ローカル環境でコードを編集して、都度開発者コンソールに貼付ける作業が必要になります。
Alexaスキルは、Node.js、Python、Javaなど SDK が用意されている言語の他、JSONを扱えるすべてのプログラミング言語で作成することができますが、Alexa-hosted スキルは Node.js のみサポートします。
次に紹介する ASK CLI が使えません。
トランザクションやストレージの容量などが、 AWS の無料利用枠内に制限されます。 スキルを公開する場合は、上限に自由度が必要になる場合があります。
本格的な開発のためには、AWS などのサービスを利用することをお勧めします。 AWSをご利用の場合でも、 無料利用枠内であれば、料金は発生しません。 加えて、 Alexa AWSプロモーションクレジット を利用すると、さらに追加の無料クーポンを受け取ることができます。
AWS アカウントをお持ちでない場合は、 こちら をご参照してください。 カスタムスキルを AWS Lambda 関数としてホスティングする では、AWS Lambda を使ったバックエンドサービスの実装方法を紹介しています。
Alexa Skills Kit コマンドラインインターフェース(ASK CLI)は、Alexaスキル、および連携する AWS Lambda 関数を、コマンドラインで管理するためのツールです。 ASK CLI を使うと、スキルの対話モデルや各種設定ファイル、バックエンドの Lambda 関数のコードなどをローカルストレージに保持し、コマンドラインで、Alexa サービスや AWS へのデプロイや各種操作をすることができます。 これにより例えば次のような利点があります。
ソース管理ツールを使って、チームでソースを共有したり、履歴の管理を行える。
お好みのコードエディタを使うことができる。
バッチ処理による定型化されたソースのデプロイや、テストを行うことができる。
たとえば、ローカルファイルをデプロイするのは次のようになります。
> ask deploy -------------------- Update Skill Project -------------------- Profile for the deployment: [default] Skill Id: ... Skill deployment finished. Model deployment finished. Lambda deployment finished.
デプロイの他にも、新しいスキルの作成や既存のスキルのクローン、スキルのテストなど、 高度で幅広い操作 が可能です。
CLIの利用を開始するには、 ASK CLI クイックスタート を参照してください。
また、 ASK Toolkit for Visual Studio Code を使うと、Visual Studio Code に統合された形で ASK CLI を使ったり、コードスニペットの生成や JSON スキーマの検証を行うこともできます。 大変便利ですので、Visual Studio Code ユーザーの方は是非併せてご利用ください。
スキルを公開すると、 スキルストア に登録され、一般の Alexa ユーザーが利用できるようになります。 カスタムスキルの公開申請の手続きにかかる費用は無料(バックエンドサービスなどの利用料は別です)で、個人でも申請することができます。 公開のためには、所定の手続きをしてスキルの審査に合格する必要があります。 審査の主なポイントは以下の4つです。
Amazon が定める公開スキルの ポリシーガイドライン に違反しないこと。 商標や広告、対象者の年齢などに関する複数の規定があります。
セキュリティ要件に準拠すること。 ホスティング環境やアカウントリンクなどに関する複数の規定があります。
スキルの機能テストをクリアすること。 対話モデルや機能ごとにチェック項目があるので、それぞれを満たすこと。
スキルの VUI およびユーザー体験テストをクリアすること。 ユーザーがスキルを快適に利用するための会話のバリエーションや文脈の一貫性についてチェック項目があるので、それぞれを満たすこと。
そのほか、審査で指摘されやすい要件として 呼び出し名の要件 に係る項目があります。 こちらも確認しておきましょう。 詳細な要件はリンク先のドキュメントに記載されていますので申請する前に目を通し、スキルの要件を必ず確認しましょう。
要件を満たすことを確認したら、開発者コンソールの「公開」タブにある「スキルのプレビュー」、「プライバシーとコンプライアンス」、「公開範囲」の各必要項目を入力します。 各項目の記入例や留意点は、 テクニカルドキュメント を参照してください。 公開には2つのサイズのアイコンを用意する必要がありますが、入力フォームの下にある Alexa Skill アイコンビルダーを使うと簡単にオリジナルアイコンを作ることができます。
入力を完了したら、「認定」タブにある「検証」・「機能テスト」を実行し、問題がすべて解決したら申請します。
申請すると、審査が行われ、完了すると結果が通知されます。 審査を通過しなかった場合は、結果とその理由がEメールで提示されますので、対応を検討、修正の上再度申請します。 審査を通過した場合は、公開される時期の目安がEメールで通知されます。
スキルが公開されると、開発者コンソールのスキル一覧には開発したスキルと同じ名前の ライブスキル が追加されます。 ライブスキルは[ステータス]列が「公開中」になり、設定の表示のみが可能で変更はできません。 引き続きスキルに機能追加や改良を行うためには、[ステータス]列が「開発中」になっている方のスキルを変更します。
スキルの呼び出し回数やユーザー数などを開発者コンソールのスキル一覧の 「レポート」 から確認することができます。 よりたくさんのユーザーに使ってもらえるよう、これらの情報を参考にしてスキルを改善していきましょう。
その他以下のブログも是非ご参照ください。