拡張機能のための Node.js ボットの構成Configure Node.js bot for extension

適用対象: SDK v4APPLIES TO: SDK v4

この記事 では、名前付きパイプ を使用するようにボットを更新する方法と、ボットがホストされている Azure App Service リソースで Direct Line App Service 拡張機能を有効にする方法について説明します。This article describes how to update a bot to work with named pipes, and how to enable the Direct Line app service extension in the Azure App Service resource where the bot is hosted.

前提条件Prerequisites

次に説明する手順を実行するには、ボットを Azure にデプロイする必要があります。To perform the steps described next, you need to have a bot deployed in Azure.

App Service Direct Lineを有効にするEnable Direct Line app service extension

このセクションでは、ボットの Direct Line チャネル構成から App Service 拡張機能キーを使用して、Direct Lineを有効にする方法について説明します。This section describes how to enable the Direct Line app service extension using the app service extension key from your bot's Direct Line channel configuration.

Direct Line App Service 拡張機能を使用するように Node.js ボットを更新するUpdate Node.js Bot to use Direct Line App Service Extension

  1. BotBuilder v4.7.0 以降は、拡張機能で Node.jsボットを使用Direct Line App Serviceがあります。BotBuilder v4.7.0 or later is required to use a Node.js bot with Direct Line App Service Extension.

  2. アプリで Direct Line App Service 拡張機能の名前付きパイプ を使用できるようにします:Allow your app to use the Direct Line App Service Extension Named Pipe:

    ボットの index.js (アダプターとボットの割り当ての下) を更新して、環境から App Service 名をプルし、適切な名前付きパイプに接続するようにアダプターに指示する次のコードを含めます。Update the bot's index.js (below the assignment of the adapter and bot) to include the following code that pulls the App Service name from the environment and instructs the adapter to connect to the appropriate named pipe:

    
    adapter.useNamedPipe(async (context) => {
        await myBot.run(context);
        },
        process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
    );
    
  3. index.js ファイルを保存します。Save the index.js file.

  4. ファイルを Web.Config 更新して、拡張機能によって必要なハンドラー AspNetCore と規則をサービスDirect Line App Serviceに追加します。Update the Web.Config file to add the AspNetCore handler and rule needed by Direct Line App Service Extension to service requests:

    ボットの ディレクトリ内の ファイルを見つけ、内容を変更して、 セクションと セクションに次の Web.Config wwwroot エントリ HandlersRules 含める必要があります。Locate the Web.Config file in the wwwroot directory of your bot and modify the contents to include the following entries to the Handlers and Rules sections:

    <handlers>      
          <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    
    <rewrite>
      <rules>
        <!-- Do not interfere with Direct Line App Service Extension requests. (This rule should be as high in the rules section as possible to avoid conflicts.) -->
        <rule name ="DLASE" stopProcessing="true">
          <conditions>
            <add input="{REQUEST_URI}" pattern="^/.bot"/>
          </conditions>
        </rule>
      </rules>
    </rewrite>
    
  5. ボット を Azure Web App Bot リソースに発行します。Publish the bot to your Azure Web App Bot resource.

ボットと app service 拡張機能Direct Line有効にするEnable bot Direct Line app service extension

  1. 次のAzure portal Web アプリ ボット リソース を見 つける必要があります。In the Azure portal, locate your Web App Bot resource.

  2. 左側のパネル メニューの [ボット管理 ] の下にある [チャネル] をクリックして、ボット Azure Bot Service受け取るチャネルを構成します。From the left panel menu under Bot management click on Channels to configure the Azure Bot Service channels your bot accepts messages from.

  3. まだ有効になっていない場合は、チャネルの Direct Lineをクリック し、指示に従ってチャネルを有効にします。If it is not already enabled, click on the Direct Line channel and follow instructions to enable the channel.

  4. [Connect to channels]/(チャネルに接続 する)テーブルで、次 の行の [編集] Direct Lineクリックします。In the Connect to channels table click on the Edit link on the Direct Line row.

  5. [アプリ サービスの拡張キー] セクションまで下にスクロールします。Scroll down to the App Service Extension Keys section.

  6. [表示] リンク クリックして、キーの 1 つを表示します。Click on the Show link to reveal one of the keys. この値は、次の手順で使用します。You will use this value in the steps below.

    App Service 拡張機能キー

  7. 左側のパネル メニューの [アプリケーション設定 ] セクション で、[構成] 項目 をクリック します。From the left panel menu under Application settings section, click the Configuration item.

  8. 右側のパネルで、次の新しい設定を追加します。In the right panel, add the following new settings:

    NameName Value
    DirectLineExtensionKeyDirectLineExtensionKey <App_Service_Extension_Key><App_Service_Extension_Key>
    DIRECTLINE_EXTENSION_VERSIONDIRECTLINE_EXTENSION_VERSION latestlatest

    ここで、App_Service_Extension_Key は、以前に保存した値です。Where the App_Service_Extension_Key is the value you saved earlier.

  9. Bot がソブリンまたはそれ以外の制限された Azure クラウドでホストされている場合 (つまり、 パブリックポータル経由で azure にアクセスしていない場合)、次の新しい設定も追加する必要があります。If your bot is hosted in a sovereign or otherwise restricted Azure cloud (i.e. you do not access Azure via the public portal) you will also need to add the following new setting:

    NameName Value
    DirectLineExtensionABSEndpointDirectLineExtensionABSEndpoint <URL_of_Direct_Line_App_Gateway><URL_of_Direct_Line_App_Gateway>

    URL_of_Direct_Line_App_Gateway は、bot がホストされている Azure クラウドに固有です。Where URL_of_Direct_Line_App_Gateway is specific to the Azure cloud your bot is hosted in. 米国政府の場合、この値はです。 https://directline.botframework.azure.us/v3/extensionFor USGov this value is https://directline.botframework.azure.us/v3/extension

  10. [構成] セクション内で、[全般 設定] セクションをクリックし、 Web ソケット を有効にします。Still within the Configuration section, click on the General settings section and turn on Web sockets

  11. [保存] をクリックして設定を保存します。Click on Save to save the settings. これにより、Azure App Service が再起動されます。This restarts the Azure App Service.

ダイレクトラインアプリの拡張機能とボットが構成されていることを確認するConfirm Direct Line app extension and the bot are configured

ブラウザーで、 https://<your_app_service>.azurewebsites.net/.bot に移動します。In your browser, navigate to https://<your_app_service>.azurewebsites.net/.bot. すべて正しければ、ページは JSON コンテンツ {"v":"123","k":true,"ib":true,"ob":true,"initialized":true} を返します。If everything is correct, the page will return this JSON content: {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}. これは、すべてが正常に動作している 場合に取得される情報です。ここでは、次のようになります。This is the information you obtain when everything works correctly, where

  • v によって、Direct Line App Service 拡張機能 (ASE) のビルドバージョンが表示されます。v displays the build version of the Direct Line App Service Extension (ASE).
  • k によって、Direct Line ASE がその構成から App Service 拡張機能のキーを読み取れるかどうかを決定します。k determines whether Direct Line ASE can read an App Service Extension Key from its configuration.
  • initialized によって、Direct Line ASE が App Service 拡張機能キーを使用して Azure Bot Service からボット メタデータをダウンロードできるかどうかを決定します。initialized determines whether Direct Line ASE can use the App Service Extension Key to download the bot metadata from Azure Bot Service
  • ib によって、Direct Line ASE がボットとの受信接続を確立できるかどうかを決定します。ib determines whether Direct Line ASE can establish an inbound connection with the bot.
  • ob によって、Direct Line ASE がボットとの送信接続を確立できるかどうかを決定します。ob determines whether Direct Line ASE can establish an outbound connection with the bot.

トラブルシューティングTroubleshooting

  • *Bot エンドポイント によって表示される ibob の値が False の場合、bot と Direct Line app service 拡張機能が相互に接続できないことを意味します。If the ib and ob values displayed by the *.bot endpoint are false this means the bot and the Direct Line app service extension are unable to connect to each other.

    1. 名前付きパイプを使用するためのコードが bot に追加されていることを確認します。Double check the code for using named pipes has been added to the bot.
    2. Bot を起動して実行できることを確認します。Confirm the bot is able to start up and run at all. 便利なツールとして、 WebChat のテスト、追加チャネルの接続、リモートデバッグ、ログ記録などがあります。Useful tools are Test in WebChat, connecting an additional channel, remote debugging, or logging.
    3. すべてのプロセスがクリーンに開始されるように、bot がホストされている Azure App Service 全体を再起動します。Restart the entire Azure App Service the bot is hosted within, to ensure a clean start up of all processes.
  • Bot エンドポイント初期化 済みの値が false の場合は、Direct Line app service 拡張機能が、bot の アプリケーション設定 に追加された App Service 拡張キー を検証できないことを意味します。If the initialized value of the .bot endpoint is false it means the Direct Line app service extension is unable to validate the App Service Extension Key added to the bot's Application Settings above.

    1. 値が正しく入力されたことを確認します。Confirm the value was correctly entered.
    2. Bot の [ダイレクトラインチャネルの構成] ページ に表示される代替の App Service 拡張キー に切り替えます。Switch to the alternative App Service Extension Key shown on your bot's Direct Line channel configuration page.

次の手順Next steps