AzureBotServiceが11/15にリリースされたようです。
MicrosoftBotFrameworkを使ったSkype用BotをAWSLambdaで実行しているBot職人としては触らない選択肢はない!!
Azureも触ってみなきゃと思いつつ、よいきっかけがなかったので初めて手を出してみました。
AzureBotServiceとは
AzureFunctionで実行するBot専用Serviceです。
AzureFunctionはAWSでいうLambdaのようなFunction as a Serviceですので、今はやりのサーバレスですね。
https://azure.microsoft.com/ja-jp/services/bot-service/
AzureですのでもちろんMicrosoftBotFramework上で動くBotを作るためのサービスになっています。
Botを作ってみる
以下の手順にそってやってみます。
https://blogs.msdn.microsoft.com/bluesky/2016/11/16/how-to-create-publish-bot-using-azure-bot-service/
テンプレートを実行するだけなので特にはまることはなかったです。
感想
MicrosoftBotFrameworkの設定が各画面に組み込まれている!
これはわかりやすい。便利。
何もしなくても動くテンプレート
C#をまともに触ったことないですが、これくらいまで書かれていると触ろうという気になります。
echoボットは以下の機能でした。
- 話しかけられた回数をカウントアップする
- resetと話しかけられると、確認ダイアログを使ってYesなら1に戻す
サンプルとはいえ、単なるテキスト返すだけじゃないのがいいですね。
コードもわかりやすく、見るとすぐわかると思います。
Skypeでもそのまま使える!
Channelからコンタクトに追加するだけでbotがすぐに使えます。
まとめ
AWSLambdaで実現しようと思った場合、
・LambdaFunctionを作って・・
・APIGatewayを設定して、Lambdaへパラメータを渡して※、デプロイして・・
・BotFramework側にEndpointを登録して、実際のチャットでテストして・・
という流れですが、さすがにそういう手間は省かれていてすばらしいです。
※今はAWSのAPIGatewayで、パラメータをすべてLambdaに渡すということができますが当時はできなかった。
あと、ダイアログが使えるのもいいですね(RestAPIでもできるのかな・・)
これは今後も積極的に利用していく価値はあると感じました。
使ったことはありませんが、FacebookMessengerやSlackとも連携しているようなのでそちらのBot用環境としても便利だと思います。