こんにちは、 @dz_ こと大平かづみです。
Prologue - はじめに
いつのころからか、 Azure CLI で az bot
サブコマンドがつかえるようになりました!
Bot Service の新規作成、ソースコードのダウンロードやデプロイ、チャンネルの管理などができるようです。
なお、現段階では、 botservice の拡張機能をインストールしておくと吉です。(ここでは書きませんが、 az bot download
で .env
ファイルが自動で作成されるなど便利です♪)
References
Azure CLI の az bot
をつかって、Bot Service を新規作成する
まず手始めに、 Azure CLI で Bot Service を新規作成してみましょう。
事前準備
アカウントはそれぞれ準備してください。
- Azure アカウント
- Microsoft アカウント
- Azure CLI
- Azure アカウントにログインしておく
- botservice 拡張機能(後述)
botservice の拡張機能のインストールは、下記のコマンドで行えます。
# Azure CLI に botservice の拡張機能を追加する
az extension add --name botservice
大まかな流れ
- Application Registration Portal でアプリケーションを追加する
- 追加したアプリケーションのパスワードを発行する
-
az bot
コマンドで Bot Service を新規作成する
手順
まず、アプリケーションを登録しましょう。
Application Registration Portal にアクセスし、「Add an app」ボタンをクリックします。
Application Name に任意のアプリケーション名を入力し、「Create」ボタンをクリックします。
作成ができると、以下の画面に遷移します。ここで Application Id が表示されるので、控えておいてください。そして、「Generate New Password」ボタンをクリックし、パスワードを発行します。
発行されたパスワードが表示されるので、控えておいてください。なお、このパスワードはこのタイミングでしか表示されないので、お気を付けください。もし忘れてしまった場合は、再度発行してください。
ここまでで、 Application Id と Application Secret(password) が用意できました。
それでは、 az bot create
で Bot Service を作成しましょう。ここでは、以下の条件で作成します。先ほど控えた Application Id と password を指定して、下記のコマンドを実行します。
項目 | 値 |
---|---|
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 ポータル上のリソース一覧のキャプチャです。)
なお、 「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 版であることと、アクセストークンを取得して云々と手間がかかりそうなので諦めました。
- Create application - Documentation - Microsoft Graph
- Get auth tokens - Documentation - Microsoft Graph
Epilogue - おわりに
az bot create
で意気揚々と App Id も自動作成して、あらカンタン!という流れを想像していたのですが、それができなくて残念です。
ですが、実は、 az bot
コマンドの真の魅力は create
ではなく、 download
と publish
なのです!ふふふ!
次回改めてまとめようと思います(`・ω・´)