今回はAlexaスキルのアーキテクチャーパターンを三つ取り上げる。インターネット上のリソース(コンテンツを提供するAPIサーバー)を利用する「パブリックリソース活用パターン」、自社管理リソースを利用する「プライベートリソース活用パターン」、ネット家電の操作など音声以外のフィードバック(出力)を利用する「IoTパターン」である(表1)。以降で順に見ていこう。

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

パブリックリソース活用パターン

 パブリックリソース活用パターンは、ニュースや天気予報、交通情報などインターネット上で公開されているリソースを、Alexaスキルで利用する用途に適している。

 構成は、前回に取り上げたシンプルパターンと大差ない。違いは、リソースを格納している、自社あるいは他社のAPIサーバーが存在する点である(図1)。Lambdaを介してインターネット上のAPIサーバーと接続することで、常に最新のニュースを提供するといった具合に、動的にコンテンツを変更できる。

図1 パブリックリソース活用パターン
[画像のクリックで拡大表示]

 ニュース提供のAlexaスキルを例に、コンテンツ更新の方法を下記に示す。APIサーバーにアクセスするための認可情報「APIキー」が不要か必要かで、方法が異なる。

■APIキーが不要なAPIサーバーを利用する場合

(1)ニュースコンテンツの提供元では、REST形式のAPIが用意されているものとする。そのURIを調べる。
(2)コンテンツ提供元のURIにGETリクエストを送り、情報を取得する。
(3)取得したコンテンツをLambda内のロジックで処理をして、ユーザーに応答する。

■APIキーが必要なAPIサーバーを利用する場合

(1)ニュースコンテンツの提供元では、REST形式のAPIが提供されているものとする。そのURIを調べる。
(2)必要に応じて、APIキーをLambdaの環境変数に設定する。このとき可能であれば、AWSの暗号化サービスAWS KMS(Key Management System)を使うなどしてAPIキーを秘匿化しておく。
(3)APIキーを利用してコンテンツ提供元のURIにGETリクエストを送り、コンテンツを取得する。
(4)取得したコンテンツをLambdaファンクションで処理し、ユーザーに応答する。

 パブリックリソース活用パターンは、動的なコンテンツをパブリックなAPIサーバーから取得するので、ニュースや天気予報といったオープンな情報の提供に適している。

 一方、ユーザー個人にひも付く情報を提供するケースには適していない。例えば、銀行口座の残高などはパブリックリソース活用パターンではなく、後述するプライベートリソース活用パターンを用いる。

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

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