Azure

Azure Bot Services をローカルデバックする

Azure Bot Services で日本語を英語に翻訳する Bot を作ってみた の時に試してなかった、Azure Bot Services のローカルデバックを試してみました~。

まぁー、以下のサイトの内容をそのままやっただけですけど。
https://docs.botframework.com/en-us/azure-bot-service/manage/debug/#debugging-c-bots-built-using-the-azure-bot-service-on-windows

やったこと

ざっくりまとめると、今回は、以下のことをやりました。

  1. Bot Services に新しいBot の登録
  2. Bot Services より、ソースをDLして、ローカルリポジトリに追加。
    ついでに、Bot Service の CI 環境に Gitを設定
  3. Bot Framework Emulator を DL してインストール
  4. Azure Functions CLI をインストール
    NPM を入れてなかったので、インストールした。
  5. DotNet CLI は、もう入ってたので特にインストールしませんでした。
  6. コマンドプロンプトを開いて、2のローカルリポジトリのパスに移動して、「dotnet restore」を実行
  7. debughost.cmd を起動
    一回起動したら、エラーになってプロンプトが返ってきたけど、もう一度実行したら普通に起動できた。
  8. Bot Framework Emulator で、テスト実行
  9. Visual Studio で、ソースを変更して、F5 でデバッグ実行
    UAC 絡みで、VSを一度再起動。管理者モードで実行しておけば、再起動は不要だったかな?
  10. ソースをコミットして、Bot Services に反映

やった結果

インストールとか、その辺は、そのまんまなので飛ばしちゃいますー。

まずは、コマンドプロンプトから、debughost.cmd を実行したスクリーンショット
Listening on の後の URL が Bot Framework Emulator で接続するURLとなります。

 

Bot Framework Emulator を起動したら、こんな感じで接続します。
App ID と App Password は空のままです。

 

Visual Studio で F5 でデバッグ実行して、適当なところで Break を貼って、Bot Framework Emulator からなんかメッセージにでも文字を打つと、ちゃんと VS で Braekを貼ったところで止まります。
下のスクリーンショットだと、32行目のところで止まってるのかな。

 

Bot Framework Emulator はこんな感じ

 

ちょこっとソースを変えて

 

もう一度デバッグ実行
32行目でBreak を貼って、44行目までステップ実行して、「message.Text」の中身をのぞいてるところです。
message.Textには、"test"って入れてたみたい

で、Bot Framework Emulator
たしかに、Input には、testって入れてますね。

 

で、VS からGit にコミットして、Bot Services の方で、Deployment を  Sync !!
テストしてみると、ローカルでの修正内容が反映されてます。

先に動きを見ているので当たり前なんですけど、ちゃんとソースも変わってます。

 

まとめ

ローカルデバッグができるようになったので、Bot Framework と同じくらいの使いやすさになったかもです。

ただ、どうせなら、Visual Studio で早くテンプレート出てほしい感じがします。
いちいち、Azure ポータルからBot Services を作って、そこからソースをDLするのはちょっとだるいです。

むしろ、VS から、Bot Services を直接デプロイして、その時に Bot Services を作れるくらいの操作感でもいいような気がするんですけどねー。

だけど、デモとかそういう小さいのしか作ってないからそう思うだけなのかな。。。

 

-Azure
-, ,