デベロッパーコンソールでテストが出来たり、https://echosim.io/でブラウザ上でSkillを実行できたりと、Skillの開発環境が色々と揃ってきました。
そこで、実際に作ったSkillが公開されるまでの流れをまとめてみました。
Skillの登録
以前に書いたAmazon Alexa Skills Kitを調べてみるのように、Amazon.comのアカウントが必要です。そのアカウントを利用して、developer portalにログインして登録します。
メニューのAlexa
を選ぶとAlexa Skills Kit
とAlexa Voice Service
が選べるので、Alexa Skills Kit
を選びます。
すると自分が作成したSkillの一覧画面に移動します。
右上のAdd a New Skill
をクリックします。
基本情報の登録
今回は、通常のSkillを作成するのでCustom Interaction Model
を選びます。Name
にはSkill名を入力します。ここに入力したSkill名がAlexa AppやEchoのskill一覧に表示されます。Invocation Name
には、Skillを実行するときのワードを入力します。今回は月の月齢を尋ねるSkillを作ってみたので、Moon Age
としました。Alexaに実行させる場合はAlexa, ask Moon Age
のように話しかけることで、Skillが呼び出され、今日の日付の月齢を答えてくれます。
Invocation Name
に登録できる単語には使える文字や数などの制約があり、当然ながらEcho
、Alexa
、Amazon
と言った単語も使えません。
注意)以降の画像でアイコンが表示されていますが、全部登録した後に撮ったスクショなのでそうなっています。実際はアイコン画像を登録するまでは何も表示されていません。
Intent Schema
ここでは、Alexa, ask Moon Age
と問いかけた時に呼び出されるIntentの定義を行います。Moon Ageでは追加のキーワードを指定しないので、slotと呼ばれるキーワードの定義はしません。
もしMoon Ageが今日のではなく特定の日の月齢を返すSkillとして作る場合は、Intent Schemaは以下の様な形になります。
{
"intents": [
{
"intent": "AskMoonAge",
"slots": [
{
"name": "Date",
"type": "AMAZON.DATE"
}
]
}
]
}
Sample Utterances
ここでは、Intentと実際に発話をひも付けます。Moon AgeはAlexa, ask Moon Age
と1種類だけですので、ask moon age
を先ほど登録したIntentのAskMoonAge
とひも付けます。
特定の日の月齢を調べられるように作った場合は、以下のようにそのパターンも書いてあげます。
AskMoonAge ask moon age
AskMoonAge ask moon age for {Date}
Endpoint
LambdaでSkillを作ったので、ここではLambdaのエンドポイントを入力します。
アカウントの連携もしないのでAccount LinkingはNo
を指定。
Test
ここまで情報を埋めると、実際にSkillのテストが行えます。
Enter Utterance
の所に、Alexaに問いかける文章を入力してAsk Moon Age
ボタンをクリックすると、Lambdaに送信されるリクエストと、Lambdaが返してきたレスポンスの内容を確認することが出来ます。
Publishing Information
公開するための情報を入力します。
Example Phrases
には、Alexaにどのように話しかけることで実行できるかのサンプルを書きます。
カテゴリー、Skillの検索キーワード、アイコンを登録します。
Testing Instructions
には作成したSkillをレビューチームがどうテストすればいいかを書きます。
Privacy & Compliance
Skillを利用するのにお金が必要か?個人情報を収集するか?と言った質問に答えます。
例えば、Alexa経由でピザを注文できるようなSkillを作ったならば、届け先住所などの情報も収集することになるので、プライバシーポリシーや利用規約のURLも指定する必要があります。
Moon Ageは非常に単純なSkillなので、URLは未入力でも大丈夫でした。(今後もそうとは限りません)
Export Complianceは、EAR (米国輸出規則) に準拠しているかを聞かれていますが、SkillはSSLに対応したエンドポイントじゃないと作成できないので、必ずチェックをつけることになります。
チェックつけた後にSave
をクリックして保存すると、Submit for Certification
がクリックできるようになります。
確認ダイアログ
Submit for Certification
をクリックするとダイアログが表示されるので、問題なければYesをクリックします。
これで、審査が行われます。
審査中は設定を変更することが出来ないので、変更したい場合はwithdraw from Certification
をクリックして申請を取り下げます。
一覧に戻ると、審査中ステータスになってます。
審査終了
審査が終わるとその旨を伝えるメールが届きます。
そして、Skillの一覧には公開されているSkillが増えています。
実際に試していないけど、Skillの設定を変えたら再度審査になるのかな?
メトリックス
開発版も公開されている物も呼びだされた回数をグラフで見ることが出来ます。
あとがき
すごく簡単なSkillを作って実際に公開するまでの手順を書きましたが、結構簡単ですね。初期の頃と比べるとテストも簡単にできるし。
Lambda使えばサーバを用意する必要もないですし、負荷もほとんど気にする必要が無いので、何かいいアイディアがあれば作ってみるのもいいと思います。