トンネルを使用して任意のチャネルからボットをデバッグする
この記事の対象: SDK v4
ボットの開発中は、IDE と Bot Framework Emulator を使用してボットとローカルでチャットし、ボットが送受信するメッセージを調べることができます。 ボットが運用環境にある場合は、トンネルを使用して任意のチャネルからボットをデバッグできます。 ボットを複数のチャネルにシームレスに接続することは、Bot Framework で利用できる重要な機能です。
この記事では、ボットに接続されたチャネルでトンネルと C# の EchoBot を使用して、ボットをローカルでデバッグする方法について説明します。 この記事では、チャネルの例として Microsoft Teams を使用します。
前提条件
- Microsoft Azure サブスクリプション。
- 開発トンネルなどのトンネリング ソフトウェアのインストール。
- マルチテナント アプリとして構成され、任意のチャンネルに接続された C# Echo ボット。
トンネルを構成する
開発トンネルは、インターネット要求がローカル マシンに到達するように、トンネリング URL または転送 URL を作成できるクロスプラットフォーム アプリケーションです。 devtunnel を使用して、Web 上の外部チャネルからのメッセージを (Azure portal で構成された標準のメッセージング エンドポイントではなく) 直接ローカル コンピューターに転送することで、デバッグが可能になります。
devtunnel
CLI にアクセスできるターミナルを開きます。新しいトンネルを作成するには、次のコマンドで devtunnel を実行します。
devtunnel host -a -p 3978
Note
指定されたポートは、ボットが実行されているポートです。 任意の localhost ポートを使用できます。
devtunnel が起動したら、後で使用するために転送用パブリック URL をコピーして保存します。
Azure Portal での構成
devtunnel の実行中に、Azure portal にサインインし、ボットの設定を表示して構成を行います。
ローカル ボットに接続されているボット リソースを選択します。
[設定]/[構成] に移動します。 devtunnel の転送用 URL をコピーして、[メッセージング エンドポイント] フィールドに貼り付けます。 URL の末尾に "/api/messages" が維持されていることを確認します。
適用を選択します。
テスト
この時点で、外部チャンネルからボットへの受信メッセージがローカル ボットに送信されるようになります。 これを示すために使用するサンプル ボットは、Microsoft Teams 用に既にライブ構成されています。 ローカル ボットと Microsoft Teams チャンネルの接続については、「ボットを Microsoft Teams に接続する」を参照してください。
ローカルでは、Visual Studio でブレークポイントを設定できます。 受信アクティビティ オブジェクトから text プロパティを展開すると、チームからボットを送信したメッセージがローカルで傍受され、デバッグが行われていることがわかります。
ここからは、通常どおりにデバッグし、コードをステップ バイ ステップで実行できます。 これを使用して、任意のチャネルからボットをデバッグします。