スマートスピーカー

AWSアカウントが無くてもAlexa-Hostedでスキル開発する流れ

AWSアカウントが無くてもAlexa-Hostedでスキル開発する流れ

前回の記事で、Alexa Skills Kit(ASK)とAWS Lambdaでスキルを作る流れを書きましたが、

Alexa Skills KitとLambdaでスキルを作る流れ
Alexa Skills KitとLambdaでスキルを開発する流れ私は現在Alexaスキルを作る練習をしているのですが、備忘録も兼ねてAlexa Skills Kit(ASK)とAWS Lambdaでスキルを作る流れを書いていきたいと思います。「Alexaスキルを作ってみたいけど、何をしたらいいか分からない」という方の参考になれば幸いです。...

 

AWSアカウントが無くてもLambdaを利用してスキル開発できる方法がありますので、今回はその方法を紹介したいと思います。

 

Alexa Skills Kitでスキルを作る際に、Alexa-Hostedという仕組みを選択するだけなので簡単に利用できますよ。

 

AWSアカウントが無くてもAlexa-Hostedでスキル開発する流れ

基本的に、リクエストの処理はLambdaで記述するのが一般的ですが、LambdaはAWSのアカウントを開設しないといけないのでサクッと試したい人には面倒くさいですよね。

そこで、AWSアカウントが無くてもサクッとLambdaを利用したい場合は、Alexa-Hostedというスキル開発の方法を選択しましょう。

AWSアカウントが無くてもLambdaを利用できます。ついでに、S3も利用できます。

どのようなサービスが含まれますか?

AWS Lambdaエンドポイントを始め、メディアストレージ用のAmazon S3バケット、Amazon S3を使用したセッション永続性管理用のキー値テーブルにアクセスできます。

利用制限はありますか?

AWSの無料利用枠内に制限されています。アカウントごとに次の制限が適用されます。AWS Lambda: 月あたり、100万件のAWS Lambdaリクエスト、320万秒のコンピューティング時間を利用できます。Amazon S3: 月あたり、5 GBのAmazon S3ストレージ、20,000件のGETリクエスト、2,000件のPUTリクエスト、15 GBのデータ転送を利用できます。AWS CodeCommit: 月あたり、50 GBのストレージ、10,000件のGitリクエストを利用できます。

引用元:https://developer.amazon.com/ja-JP/docs/alexa/hosted-skills/build-a-skill-end-to-end-using-an-alexa-hosted-skill.html#usage

 

※これより以下の画像はクリック(またはタップ)で拡大しますので、小さくて見にくい場合は拡大してご覧ください。

Alexa-Hostedでスキルを開発する

まずはAlexa Skills Kitでスキル(プロジェクト)を作成します。

alexa1

スキルのエンドポイントが、デフォルトでは「ユーザー定義のプロビジョニング」になっています。

これを「Alexa-Hosted (Node.js)」または「Alexa-Hosted (Python)」を選択すると、

Alexa Skills KitのコンソールでLambdaを利用(コーディング)できるようになります

 

AWSアカウントは不要で、サクッと試すレベルにおいては利用料金もかかりません。AWSの無料利用枠内の範囲内で利用できます。

 

それでは、今回は「Alexa-Hosted (Node.js)」を選択してみます。

どのテンプレートを利用するか聞かれるので、お好きなものを。ここではデフォルトのHello Worldテンプレートを選択してみます。

alexa2

 

1分ほどでスキルが作成されるので、待ちましょう。

alexa3

 

スキルが作成されましたね。

alexa4

Alexa-Hostedでは、画面右の「スキルビルダーのチェックリスト」はすでに設定が終わっていて、ビルドまで完了している状態でスキルが作成されているのが特徴です。

 

呼び出し名やインテントなどを変更・追加する

すでにビルドは終わっていますが、呼び出し名などを変更する必要がありますので、変更していきます。

呼び出し名の確認

デフォルトでは「change me」となっていますので、任意の呼び出し名に変更します。

alexa6

 

今回は、「hello world test」という呼び出し名に変更してみました。

alexa8

 

インテントの確認

インテントは、デフォルトで「HelloWorldIntent」というインテントが定義されていますね。

alexa5

ここを編集・削除・追加していきましょう。

今は一旦、そのままにしておきます。

 

エンドポイントの確認

エンドポイントもすでにLambdaに連携されていますね。

alexa16

Lambdaの編集は「コードエディタ」タブから編集できます。

なお、エンドポイントのARNを見て頂くと分かりますが、地域が“us-east”になっています。

つまり、米国のサーバーを利用しています。日本のサーバー(東京)を選択することはできません。

もし業務で利用する場合は、技術の輸出に該当する可能性がありますので、輸出管理の対象かどうかを会社に確認してから利用したほうがいいでしょう。

 

コードエディタ

ではLambdaのコードを見てみましょう。タブの「コードエディタ」を選択します。

alexa10

こんな感じで、最小構成のコードになっています。

HelloWorldIntentがすでにコーディングされていますので、こちらが”hello”と発話すると、”Hello World!”と答えてくれるコードになっていますね。

スキルを起動したときのメッセージもちゃんと定義されています。

alexa15

 

テストしてみる

現時点の(何も触ってない)状態でテストしてみましょう。

alexa17

予想通り、helloと入力するとHello World!と返してくれていますね!

ばっちり動作しています。

 

コードエディタでLambdaを編集する

では実際のスキル開発を想定して、Lambdaをいじってみましょう。

今回は、”goodbye”と発話したら、”Goodbye!”と返してくれるように編集してみます。

 

ではまずgoodbye用の”GoodbyeIntent”を追加で定義します。

alexa13

こんな感じで。とりあえず発話パターンは”goodbye”だけ入れました。

 

そして、Lambdaの編集です。

GoodbyeIntentの処理を追加します。すでにあるHelloWorldIntentをそのままコピペして、GoodbyeIntentに書き換えればいいですね。

alexa11 alexa12

これでOKです。

 

では動作確認してみましょう。

alexa14

goodbyeと入力すると、Goodbye!と返してくれていますね、成功です!

 

こんな感じで、コードエディタでLambdaを編集していけばAWSアカウントが無くてもスキルが作れますよ。

 

まとめ

今回は、AWSアカウントが無くてもAlexa-HostedスキルでLambdaを使ったスキル開発ができることを紹介してみました。

Alexaスキル作りたいけど、「AWSアカウント作るの面倒だな」とか、「クレジットカード持ってないからそもそもAWSアカウント作れないや」という方はぜひAlexa-Hostedを使ってみてください。

とても簡単にスキル開発できますよ。

RELATED POST