Node.js
Azure
AzureCLI
BotFramework
BotService

Check! `az bot create` で Bot Service を新規作成する

こんにちは、 @dz_ こと大平かづみです。

Prologue - はじめに

いつのころからか、 Azure CLI で az bot サブコマンドがつかえるようになりました!

Bot Service の新規作成、ソースコードのダウンロードやデプロイ、チャンネルの管理などができるようです。

なお、現段階では、 botservice の拡張機能をインストールしておくと吉です。(ここでは書きませんが、 az bot download.env ファイルが自動で作成されるなど便利です♪)

References

Azure CLI の az bot をつかって、Bot Service を新規作成する

まず手始めに、 Azure CLI で Bot Service を新規作成してみましょう。

事前準備

アカウントはそれぞれ準備してください。

botservice の拡張機能のインストールは、下記のコマンドで行えます。

# Azure CLI に botservice の拡張機能を追加する
az extension add --name botservice

大まかな流れ

  • Application Registration Portal でアプリケーションを追加する
  • 追加したアプリケーションのパスワードを発行する
  • az bot コマンドで Bot Service を新規作成する

手順

まず、アプリケーションを登録しましょう。

Application Registration Portal にアクセスし、「Add an app」ボタンをクリックします。

image.png

Application Name に任意のアプリケーション名を入力し、「Create」ボタンをクリックします。

image.png

作成ができると、以下の画面に遷移します。ここで Application Id が表示されるので、控えておいてください。そして、「Generate New Password」ボタンをクリックし、パスワードを発行します。

image.png

発行されたパスワードが表示されるので、控えておいてください。なお、このパスワードはこのタイミングでしか表示されないので、お気を付けください。もし忘れてしまった場合は、再度発行してください。

image.png

ここまでで、 Application IdApplication Secret(password) が用意できました。

それでは、 az bot create で Bot Service を作成しましょう。ここでは、以下の条件で作成します。先ほど控えた Application Idpassword を指定して、下記のコマンドを実行します。

項目
Bot Service の種類 Web App
Bot Framework バージョン v4
言語 Node.js
# 各種変数を定義する(任意)
RESOURCE_GROUP=<リソースグループ名>
BOTSERVICE_NAME=<Bot Service の名前>
LOCATION=japaneast

# まずリソースグループを作成する
az group create --name ${RESOURCE_GROUP}

# Bot Service を作成する
az bot create --resource-group ${RESOURCE_GROUP} --name ${BOTSERVICE_NAME} --kind webapp --location ${LOCATION} --lang Node --version v4 --appid <Application Id> --password <Application Secret>

コマンドの実行が完了すると、以下のようなリソースが作成されます。(※ Azure ポータル上のリソース一覧のキャプチャです。)

image.png

なお、 「App Service プラン」は Web App の料金体系などを定めるリソースです。リソース名は Bot Service と同名です。このプランには無料( FREE )もあるのですが、ここでは S1 で作成されるので、変えたい方はポータルから変えるか、またはCLIで以下のように変更できます。

# App Service プランのプランを変更する
az appservice plan update --resource-group ${RESOURCE_GROUP} --name ${BOTSERVICE_NAME} --sku FREE

ここまでで、 Bot Service を新規作成できました。簡単ですね!

トラブルシューティング

MSA id の自動プロビジョンができない

az bot create は、 --appid および --password を指定しない場合、下記のように、MSA id (Microsoft Account ID) が準備できませんでしたというエラーが発生することがあります。

Unable to provision MSA id automatically. Please pass them in as parameters and try again.

実は、Azure ポータルで Bot Service を新規作成するときは、 App ID を自動で新規作成してくれて便利なので、ここでもそれを期待したのですが、これはそういうものではないようです。残念。

ということで、現段階ではおとなしく Application Registration Portal でアプリケーションを手動で登録するか、そもそも Bot Service の作成は Azure ポータル上で行う( App ID を自動生成できる)方法がよさそうです。

なお、App ID の自動生成について調べたところ、 REST API もあるようですが、まだ beta 版であることと、アクセストークンを取得して云々と手間がかかりそうなので諦めました。

Epilogue - おわりに

az bot create で意気揚々と App Id も自動作成して、あらカンタン!という流れを想像していたのですが、それができなくて残念です。

ですが、実は、 az bot コマンドの真の魅力は create ではなく、 downloadpublish なのです!ふふふ!

次回改めてまとめようと思います(`・ω・´)