AlexaスキルとMySQLデータベースの接続方法はあるか?

AlexaスキルとMySQLデータベースの接続方法はあるか?

皆さん、どうも。Smartio開発部研究員のシバトウです。前回はAlexaスキルから、Amazonのサービスの1つであるDynamoDB(データベース)を操作することに成功したところでしたね。

実際にどのような操作ができるのかは、以下の記事を参考にしてみてください。今日はまた変わったことを試すための準備をしていきましょう!

さて、普段皆さんがレンタルサーバーで目にすることの多いのは、MySQLで管理されているデータベースですね!ワードプレスを使ったサイトを運営しているのであれば、もうMySQLで間違いありません。

今回はそのMySQLとAlexaスキルを連携しデータベースが操作できるか、その可能性について調査しました。さっそく、調査結果を紹介していきますね!

MySQLって何者?

MySQLとは?

そもそもMySQLというのは、データベースを管理するためのシステムのこと。MySQLを通じてデータベースに蓄積されているデータを操作すれば、利用目的に合わせてデータを検索(加工)することができます。

ワードプレスもこのMySQLを利用してデータを操作しているので、記事の編集や追加などができているというわけ!

AlexaスキルとMySQLの接続方法って?

AlexaスキルとMySQLの接続方法って?

MySQLについて少し理解が深まったところで、本題に移りましょう!

通常Amazon Echoで受け取ったユーザーの音声を処理するために、AWS Lambdaのサービスを利用することが多いですね。でもこれは、Alexaスキルの開発にAWS(Amazon Web Services)を利用した環境が推奨されているためでもあります。

MySQLのデータベースはAWSサービス外のサーバーに設置されているので、接続方法を調べてみました!

1.AWS Lambdaから操作を試みる

AWS LambdaからとMySQLを操作する

AWS Lambdaから外部のMySQLにアクセスできれば、これが手っ取り早くデータが入手できる最短ルートになります。ただしAWS LambdaからMySQLを操作するためには、利用している言語(Node.jsあるいはPython)に合わせた外部ライブラリ(拡張機能)の導入が必要です。

この点がかなりの手間になりそうですが、その手間を惜しまなければLambda内でSQL文が実行できるようになります。これができれば、Lambdaから目的のデータベースのデータを操作することができるようになるというわけ。

ただ、この方法。MySQLを置いているレンタルサーバーによっては、外部からのアクセス制限が厳しくなっている場合があります。そもそも外部からアクセスできない可能性もあるため、レンタルサーバーのデータベースが外部アクセスを許可しているかを確認しましょう!

2.MySQLが動作するサーバーから操作

エンドポイントの変更で、データベースのあるサーバーから直接MySQLを操作する

Alexaスキル開発の推奨環境こそAWS Lambdaなのですが、そこにこだわらなければ別の方法も考えられます。その方法とは、MySQLが動作するサーバーで直接データを扱うこと!

開発者コンソール内の設定には、「エンドポイント」という項目があります。エンドポイントでは、Alexaがユーザー音声をテキスト化したものをどこで処理するかを決めることができるんですね。

つまりエンドポイントがMySQLが動作しているサーバーであれば、このテキストを含むデータがそのサーバーにJSON形式で送られてきます。その情報をもとに必要なデータを操作・取得したら、あとはAlexaに応答として返すだけです!

MySQLと接続できる可能性

AlexaスキルからMySQLへ接続方法を2つ紹介しました。これらが実際に動けば、AlexaスキルからMySQLを利用してデータベースを操作できるようになります。もし既存のサービスがMySQLで構成されているのであれば、Alexaスキル化することも容易になったといえるでしょう!

しかし、今回の記事の時点では実際に接続するところまではできませんでした…。今後も研究は継続していくので、成果が出たときにはあらためて記事を公開していきますね!

ランキング一覧

スマートスピーカーを使った1番オススメしたい方法

スマートスピーカー比較

あなたにぴったりのスマートスピーカーが分かる!欲しくなる!

家電操作おすすめ記事