前回の記事で、Alexa Skills Kit(ASK)とAWS Lambdaでスキルを作る流れを書きましたが、
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リクエストを利用できます。
※これより以下の画像はクリック(またはタップ)で拡大しますので、小さくて見にくい場合は拡大してご覧ください。
Alexa-Hostedでスキルを開発する
まずはAlexa Skills Kitでスキル(プロジェクト)を作成します。
スキルのエンドポイントが、デフォルトでは「ユーザー定義のプロビジョニング」になっています。
これを「Alexa-Hosted (Node.js)」または「Alexa-Hosted (Python)」を選択すると、
Alexa Skills KitのコンソールでLambdaを利用(コーディング)できるようになります。
AWSアカウントは不要で、サクッと試すレベルにおいては利用料金もかかりません。AWSの無料利用枠内の範囲内で利用できます。
それでは、今回は「Alexa-Hosted (Node.js)」を選択してみます。
どのテンプレートを利用するか聞かれるので、お好きなものを。ここではデフォルトのHello Worldテンプレートを選択してみます。
1分ほどでスキルが作成されるので、待ちましょう。
スキルが作成されましたね。
Alexa-Hostedでは、画面右の「スキルビルダーのチェックリスト」はすでに設定が終わっていて、ビルドまで完了している状態でスキルが作成されているのが特徴です。
呼び出し名やインテントなどを変更・追加する
すでにビルドは終わっていますが、呼び出し名などを変更する必要がありますので、変更していきます。
呼び出し名の確認
デフォルトでは「change me」となっていますので、任意の呼び出し名に変更します。
今回は、「hello world test」という呼び出し名に変更してみました。
インテントの確認
インテントは、デフォルトで「HelloWorldIntent」というインテントが定義されていますね。
ここを編集・削除・追加していきましょう。
今は一旦、そのままにしておきます。
エンドポイントの確認
エンドポイントもすでにLambdaに連携されていますね。
Lambdaの編集は「コードエディタ」タブから編集できます。
なお、エンドポイントのARNを見て頂くと分かりますが、地域が“us-east”になっています。
つまり、米国のサーバーを利用しています。日本のサーバー(東京)を選択することはできません。
もし業務で利用する場合は、技術の輸出に該当する可能性がありますので、輸出管理の対象かどうかを会社に確認してから利用したほうがいいでしょう。
コードエディタ
ではLambdaのコードを見てみましょう。タブの「コードエディタ」を選択します。
こんな感じで、最小構成のコードになっています。
HelloWorldIntentがすでにコーディングされていますので、こちらが”hello”と発話すると、”Hello World!”と答えてくれるコードになっていますね。
スキルを起動したときのメッセージもちゃんと定義されています。
テストしてみる
現時点の(何も触ってない)状態でテストしてみましょう。
予想通り、helloと入力するとHello World!と返してくれていますね!
ばっちり動作しています。
コードエディタでLambdaを編集する
では実際のスキル開発を想定して、Lambdaをいじってみましょう。
今回は、”goodbye”と発話したら、”Goodbye!”と返してくれるように編集してみます。
ではまずgoodbye用の”GoodbyeIntent”を追加で定義します。
こんな感じで。とりあえず発話パターンは”goodbye”だけ入れました。
そして、Lambdaの編集です。
GoodbyeIntentの処理を追加します。すでにあるHelloWorldIntentをそのままコピペして、GoodbyeIntentに書き換えればいいですね。
これでOKです。
では動作確認してみましょう。
goodbyeと入力すると、Goodbye!と返してくれていますね、成功です!
こんな感じで、コードエディタでLambdaを編集していけばAWSアカウントが無くてもスキルが作れますよ。
まとめ
今回は、AWSアカウントが無くてもAlexa-HostedスキルでLambdaを使ったスキル開発ができることを紹介してみました。
Alexaスキル作りたいけど、「AWSアカウント作るの面倒だな」とか、「クレジットカード持ってないからそもそもAWSアカウント作れないや」という方はぜひAlexa-Hostedを使ってみてください。
とても簡単にスキル開発できますよ。