AWSマネジメントコンソールからLambdaのページに移動すると、次のように作成したLambda関数が表示される。
VSベースでLambda関数を作成した場合、ここには公開時に指定した関数名が表示される。この場合は「HelloAlexaFromCSharpSample」がそうだ。これをクリックすると、前回と同様なトリガーを指定する画面が表示される。
ここでトリガーに[Alexa Skills Kit]を選択して、アクセスを許可するスキルのIDを指定すればLambda関数側の設定は完了する。具体的な手順は前回の記事を参照されたい。スキルを新規に作成した場合は、Lambda関数とスキルの両方でスキルIDや関数のARN(Amazon Resource Name)のコピー&ペーストを行う必要があることには注意しよう。
Alexaスキル側の設定も前回同様だ。ただし、今度は対話モデルの作成に「スキルビルダー」と呼ばれるツールを使ってみた。それ以外は前回と同様なので、具体的な手順の紹介は割愛する。
スキルビルダーを使うと、JSONスキーマを直に入力することなく、GUIベースで作成できる。
インテントを新規に作成するには、画面中央の[Intents]部分にある[Add an Intent]をクリックする。これにより、次のような画面が表示される。
[Create a new custom intent]欄にインテント名を入力する。ここでは上で述べた「HelloFromCSharpIntent」とする。そして、[Create Intent]ボタンをクリックする。すると、サンプル発話を入力する画面が表示される。
[Sample Utterances]にフレーズを入力して、その隣にある[+]をクリックすればそのフレーズが追加される。これを何度か繰り返して、ウィンドウ上部にある[Save Model]ボタンをクリック、最後に[Build Model]ボタンをクリックすればインテントが作成される。その少し右側にある[Configuration]ボタンをクリックすると、スキルの構成画面に戻る。
その後は前回と同様に構成を行えばよい。AlexaスキルとLambdaコードの関連付けができたら、実際に動作を確認してみよう。[テスト]タブで[テストシミュレータに進む]をクリックして、テストシミュレーターを起動し、動作を確認したところを以下に示す。
なお、自分のAmazon開発者アカウントと同じアカウントに結び付けられているAmazon Echoがあれば、実機でのテストも可能だ。これにはスマートデバイスにAlexaアプリをインストールする(あるいはalexa.amazon.co.jpにブラウザでアクセスする)。その[スキル]タブを選択して、右上に表示された[有効なスキル]リンクをクリックしてみよう。[DEV スキル]タブに自分が開発中のスキルが表示されれば、実機でそのアプリを試せる。
ただし、Google Homeアプリとは異なり、Alexaアプリに対してしゃべり掛けてもテストはできない。Alexaアプリではスキルの有効/無効を切り替えられるだけのようだ。ここに開発中のスキルが表示されないときには、自分のAmazonアカウントをAmazon.co.jpではAmazon.comと結び付けて、開発を行っているものと思われるので、「Alexa 開発者アカウント作成時のハマりどころ」などを参考に対処しよう。
今回はAWS ToolkitとVSを使用して、Alexaから呼び出されるLambda関数をC#で実装してみた。Alexaスキル開発の基礎、VSを利用してスキル開発を行う基礎をこれまでに見てきたので、次回はスマートスピーカーと、より対話らしい対話をできるようにするとともに、何かおもしろネタを用意したいと思う(ハードル上げた!)。
Copyright© Digital Advantage Corp. All Rights Reserved.