Bot Builder v4 : DevOps リリースパイプライン作成 - Azure リソースの構成

前回の記事では Azure DevOps を使ってビルドパイプラインを作りました。今回は開発したボットをリリースする先となる Azure リソースを見ていきます。

# Azure Bot Services

BotBuilder SDK を使った開発したボットは、Azure Bot Services に接続する型で公開します。
Azure Bot Services については [Azure Bot Service : サービスの概要と初めての Web App Bot 作成](https://qiita.com/kenakamu/items/13478609120a39b7f952) を参照してください。

# ボットチャンネル登録と App Service

本番環境でボットを展開する場合、少なくとも「テスト環境」と「本番環境」が必要となります。この場合の検討事項を以下に示します。

- ボットクライアントは「ボットチャネル登録」経由でボットと接続される
- ボットチャネル登録に設定できる「メッセージングエンドポイント」は 1 つだけ
- 各環境の切り替えは瞬時に行える必要がある
- ロールバックを視野に入れる

上記を考えた場合の最小構成が以下の様になります。

- 1 つの App Service を複数スロットで運用
- ボットチャネル登録は環境数分用意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/8257463f-7566-dc94-825e-9268fbbb7d5b.png)

# 環境の構築

1\. https://portal.azure.com より Azure ポータルに接続し、新しいリソースグループを作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/af93b3b9-a7a1-2f7f-65d9-ce8e449bce0d.png)

2\. まず本番用に、リソースの追加より「Web App Bot」を作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/07040e1b-f6ea-041f-b4a8-b410c2309cef.png)

3\. ユニークな名前を設定し、ボットテンプレートから C# の Echo Bot を選択。他は任意の設定で「作成」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ebca51a6-b0d2-39ff-4455-33182ecdbfc8.png)

4\. 同じ手順でテスト用の「Web App Bot」も作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/d5ba3b51-5278-df09-4bf4-f5c508ea4a40.png)

5\. 初めに作った本番用の App Service を開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/dc011e85-d1d1-dbe6-e7c3-dfb5f3ce92d5.png)

6\.「デプロイ スロット」より「スロットの追加」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ec9c7642-d502-dde7-de27-d7d02b90dd14.png)

7\. 設定の複製を選択して新しいスロットを追加。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ce579623-b0cf-be3a-21d4-837fd35b4abd.png)

8\. 追加されたスロットを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/c1ad5cca-2f2a-cdd8-5ead-6d7630471dbd.png)

9\.「構成」をクリック。MicrosoftAppId と MicrosoftAppPassword があることを確認。￥![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/fad47b84-d930-eeab-e061-aec429da45d2.png)

10\. 新しいタブで、別に作成したテスト用 App Service に接続。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/923ea5f9-594c-655e-dafb-606ebad4cf5c.png)

11\.「構成」より「高度な編集」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/0fa3b82b-cc3d-4bf2-3c20-025dbfa1c74e.png)

12\. MicrosoftAppId と MicrosoftAppPassword の値をコピー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/e8acb239-f51e-30c1-fe64-a3bd2d6e1963.png)

13\. 追加したスロット側の構成にペースト。slotSetting と true に変更して保存。これによりスロットスワップ時に構成情報が入れ替わらない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ae7c1b93-b471-3d70-97cc-a7a97fb29ebb.png)

14\.「概要」よりアドレスをコピー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/1b5c8623-c80d-f84d-aa73-dee9915be70b.png)

15\. テスト用の「ボットチャネル登録」を開き、設定より「メッセージングエンドポイント」を更新。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/3b25b86b-fdc6-af04-8870-7a116123701d.png)

16\. テスト用の「Web App Bot」を作成した際に登録された App Service と App Plan を削除。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/64a4459e-2b1e-9ea8-b494-57aafbf4ce4d.png)

これで 2 つのスロットを持った App Service 1 つと、それぞれのスロットをポイントしている「ボットチャネル登録」2 が完成です。

# まとめ

今回はリリース先となるリソースを Azure 上に作成しました。次回はリリースパイプラインを作ります。

[次の記事へ](https://qiita.com/kenakamu/items/36b136ced489fcc2941b)
[目次に戻る](https://qiita.com/kenakamu/items/6dc043cfc1f199032883)