新 Azure Bot リソースで Echo Bot (C#) を試す

# 背景・本稿で紹介する記事
Bot Channels Registration や Web App Bot が非推奨となり、新しいシンプルな Azure Bot が出てきました。といっても、Bot Channels Registration とほぼお同じようなものと思うとイメージしやすいです。(既存の Bot Service リソースは引き続き機能すると現状は下記に明記されてますのであくまで今後作る方々向けの記事です)

https://docs.microsoft.com/ja-jp/azure/bot-service/abs-quickstart?view=azure-bot-service-4.0&tabs=csharp#create-the-resource

Azure Bot リソースは Bot Channels Registration と同様に、別途 Azure App Service 等のホスト環境に Bot Framework SDK を用いた Bot アプリを公開しておく必要があります。

今回、Azure Portal 上で新しい Azure Bot リソースを利用し、Visual Studio (VS) で C# (ASP.NET Core) の Echo Bot の GitHub サンプルアプリをデプロイするまでの一連の手順をご紹介します。

## 前提
- 有効な Azure サブスクリプションがある
- Visual Studio がインストール済み


1. Azure Bot リソースを作成する
---
以下の “Azure Bot リソースを作成する” の手順で Azure ボットというリソースを作成します。
 
[Azure Bot Service を使用してボットを作成する - Bot Service | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/bot-service/abs-quickstart?view=azure-bot-service-4.0&tabs=csharp)
 
Azure Bot リソース作成ボタン押下後、以下のリソース作成中もしくは作成完了後のデプロイ画面が出ます。左パネルの [入力] を選択します。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150728/b4fc60cc-c59a-c177-7131-669048a8b4dd.png)

 
入力パネル画面から msAppId と msAppPassword を控えておきます。
 
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150728/b013c052-8151-1a93-cab9-36b14d433bd9.png)

 
2. C# (.NET Core) のシンプルな Echo Bot をローカル環境にダウンロードし開く
---
以下の GitHub リポジトリから Echo Bot のソースをダウンロードし、botbuilder-samples/samples/csharp_dotnetcore/02.echo-bot を開きます。

\02.echo-bot フォルダ内のソリューションファイル EchoBot.sln を Visual Studio (VS) で開きます。
 
[BotBuilder-Samples/samples/csharp_dotnetcore/02.echo-bot at main · microsoft/BotBuilder-Samples (github.com)](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/02.echo-bot)

3. Echo Bot を App Service にデプロイ
---
以下の手順を参考に、上記の Echo Bot アプリを VS 経由で Azure App Service に新規作成・デプロイします。
 
[Azure App Service に発行する - Visual Studio (Windows) | Microsoft Docs](https://docs.microsoft.com/ja-jp/visualstudio/deployment/quickstart-deploy-to-azure?view=vs-2019)
 
4. Azure Bot の エンドポイント情報の設定 / 構成の設定
---
上記で新規作成され Bot アプリがデプロイされた Azure App Service の URL を控えます。
具体的には Azure Portal 上の App Service リソースの [概要] パネルの URL をコピーします。
 
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150728/718568ed-c52e-bbaf-845e-80e4ec0ece40.png)

上記の URL をコピーしたまま、最初に作成した Azure ボット リソースに再度移動します。
上記の App Service の URL 末尾に "/api/messages/" を加えたものを以下のように
Azure ボットリソースの [構成] の [メッセージ エンドポイント] に入力します。
下部の [適用] ボタンで適用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150728/20192817-8efd-5993-1033-4669b0f9c7f2.png)

さらに、上記の Bot アプリの App Service リソースの左パネルの [構成] をクリックします。
[構成] ページ内の [アプリケーション設定] の [+ 新しいアプリケーション設定] で新規作成します。
 
- [名前] に MicrosoftAppId、[値] に上記最初の手順で控えた msAppId でメモした値を入れます。
- 再度 [+ 新しいアプリケーション設定] をクリックし、[名前] に MicrosoftAppPassword、[値] に msAppPassword でメモした値を入れます。
 
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150728/64074359-0c50-9b9a-df47-7fdbce652105.png)

 
5. Azure Bot リソースの Web チャットでテストで動作確認
---
上記のデプロイが完了後、Portal 上の Azure ボットリソースの [Web チャットでテスト] にて動作することを確認します。(もし動作しない場合は少し時間を置いたり、上部 [Start over] や画面自体のリロードをして再度お試しください)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150728/f02584eb-bdc7-f658-a996-e1c729af1972.png)


### 終わり
今回はシンプルなエコーボットで試しましたが、以下にさまざまなサンプルがあるのでぜひ興味があればお試しください。

[https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore)