Azure Bot Services ではじめるチャットボット開発 ~ 構成、新規作成からデプロイまで
チャットボットのエンジンは、ユーザーからの入力に対して応答する上で Web アプリ (Web API) が良く使われています。
Azure Bot Service を利用すると、Azure に用意されている各種サービスを組み合わせたパッケージを使ってチャットボット(Web アプリ)を一度に構成できます。
Azure Bot Service を構成する Azure の各サービス
Azure Bot Service は
- チャットボット開発フレームワーク Microsoft Bot Framework をベースとした Web アプリを、Azure App Service (Web App) で稼働させるテンプレート
- さまざまなチャットツールへの接続を提供する Bot Channel への登録 (とその登録条件となる Microsoft Application Registration)
を提供するサービスです。
例えば、Microsoft Azure の各サービスを組み合わせると、このようなチャットボット用の構成が考えられます。
そして、その中のメインの部分を Azure Bot Service が担っていることになります。
Azure Bot Services 新規作成時のパラメーター、および作成エラーの対処方法
Azure Portal から Azure Bot Service を新規作成するときに必要なパラメーター (設定項目) は、それぞれ上記に挙げた Azure の各サービスに対応しています。
ボット名 (Bot Name) に入力された名前は、Bot Channel 登録名、および Azure WebApp のアプリ名(=URL) として利用されます。いずれも Azure の全サービスの中でユニークに設定する必要があり、いずれかで使用済みの場合、Azure Bot Service の作成エラーとなります。
また、Azure サブスクリプション内で付与されている権限が制限されて、Azure App Service の新規作成や変更、Azure Storage の新規作成ができないなどの場合も、Azure Bot Service 作成エラーの原因になります。これは、Azure App Service や Azure Storage は権限があるアカウントで作成し、既存のサービスを選択して設定することで回避できます。
そして、Azure サブスクリプションを利用するアカウントが 組織(企業、学校向け)アカウントの場合、Microsoft Application Registration での新規アプリの登録を制限している場合があり、その場合も Azure Bot Service が作成できせん。この場合も、権限があるアカウントで作成した アプリID/パスワード を指定することで回避できます。
Azure Bot Service をコアとしたチャットボット開発
Azure Bot Service は Bot Framework をベースとした Web アプリであり、ソースコードをダウンロード→開発、テスト→再度デプロイ の手順で構築を進めることができます。
手順としてはこのようになります;
- Azure Bot Service を作成
- ソースコード(zip) をダウンロード
- ローカルで開発、Bot Framework Emulator で確認
- Azure Bot Service 側にデプロイ
- 必要に応じて CI/CD設定など
Azure Bot Service のソースコードをダウンロードして、ローカルで開発とテストを行う
Azure Portal から Azure Bot Service を作成すると、**Build(ビルド)** のページからソースコード(zip)をダウンロードできます。
こちら C# の場合は Visual Studio のソリューションファイルになっていますので、NuGet パッケージを復元してビルド、Node.js の場合もローカルで必要なライブラリーをインストールすれば、すぐに稼働させることができます。
Azure App Service としての機能である Azure App Service Editor を使うと、ダウンロードせずにソースコードをそのまま Azure 上で修正できます。
ローカル開発では Bot Framework Emulator を使うと、チャットサービスのクライアントとして簡単にテストができます。Emulator にダウンロードした zip に含まれる BotConfigrations.bot を設定ファイルとして読み込ませれば、チャットボットのテストがすぐ始められます。
Production と Development、2種類のプロファイルがあり、Production は作成済みの Azure Bot Service (Azure 上で稼働中) にアクセスを行います。
Development としてローカルで稼働させる Azure Bot Service に接続したい場合は、Azure Bot Service アプリ(ローカル)側に少々設定が必要です。
Azure Bot Service (Azure側)の設定から Bot File Path & Bot File Secret を取得し、Azure Bot Service アプリ(ローカル) 側に設定する必要があります。
C#: appsettings.json, node.js: .env (※新規作成) し、Bot File Path & Bot File Secret を記載します。
Azure Bot Service の継続的な開発とデプロイ
ローカルで開発した Azure Bot Service アプリを Azure 側に再度デプロイするには、Visual Studio の Azure Tools を用いたデプロイが一番簡単です。zip でダウンロードしたファイル群に含まれるデプロイスクリプトが利用できます。エラーとなる場合は、 ご自身で Azure Web App の発行プロファイルを新規に作成してデプロイを行ってください。(Visual Studio に Azure サブスクリプションが紐づいているアカウントでサインインしていれば、自動でプロファイルを取得、作成できます。)
また、Azure App Service の機能である Deploy Center (デプロイセンター) を利用すると、Git や Azure DevOps などのレポジトリへの接続を設定でき、ソースコードが更新されると、自動で Azure へのデプロイを行います。