Alexaのアーキテクチャーパターンは四つに大別できる(表1)。企業の自社管理リソースや外部リソースを利用せず最もシンプルな「シンプルパターン」、インターネット上の外部リソースを利用する「パブリックリソース活用パターン」、自社管理リソースを利用する「プライベートリソース活用パターン」「IoTパターン」である。今回はこのうち、シンプルパターンを取り上げる。

表1 四つのアーキテクチャーパターンの概要
[画像のクリックで拡大表示]

Lambdaを使うシンプルパターン

 シンプルパターンは、最もシンプルな構成で、企業の自社管理リソースや外部リソースを利用しない。ファイルを基に応答コンテンツを作る。構築の難易度が低く、迅速にAlexaスキルを投入し、フェーズドアプローチ(分割検収)を取りたい場合に向く。

 シンプルパターンでは、イベント駆動コード実行サービスのAWS Lambdaを使う。ユーザーがAmazon Echoに話しかけた内容をAVS(Alexa Voice Service)で解釈し、解釈した結果をASK(Alexa Skill Kit)に渡してリクエストを生成する。生成されたリクエストはLambdaファンクション宛てに送信される。Lambdaファンクションで、受け取ったJSON形式のリクエストを処理し、ASK、AVSを経由してAmazon Echoに応答を返す(図1)。

図1 シンプルパターン
[画像のクリックで拡大表示]

 このシンプルパターンでは、APIを介してデータを取得しないことを想定している。代わりに、応答の基になるデータをLambdaファンクションの作成時にアップロードしておき、そのデータを使って動的に応答する仕組みだ。

 Lambdaファンクションの作成時に、ハンドラー(Node.jsを使った場合はindex.js、デフォルトのハンドラーはindex.handler)以外に複数のファイルをアップロードできる。アップロード方法は、オブジェクトストレージのAmazon S3を介したアップロードのほか、ZIP形式で圧縮したファイルのアップロードを選べる。ブラウザーのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境(IDE) 「AWS Cloud9」を利用する方法もある。

 シンプルパターンは、応答が日付などで変化しない(天気、証券市場のマーケット情報、金融機関の残高情報などのように日々変化する情報ではない)場合に有効である。筆者が個人で作成しているAlexaスキル「ベジチャット」は、野菜の保存方法や、野菜の旬の季節を教えるもの。応答は日付などで変化しないので、シンプルパターンを採用している(図2)。

図2 シンプルパターンを採用したAlexaスキル「ベジチャット」のアーキテクチャー
[画像のクリックで拡大表示]

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら